TCP连接概述

    TCP是因特网运输层面向连接的(connection-oriented)可靠运输协议。之所以说它是面向连接的是因为
  一个应用进程向另外一个应用进程发送数据之前,两个进程必须先要“握手”(建立连接),初始化一些建立连
  接的TCP状态变量。

    TCP协议是在端系统中运行的,不会在中间的网络元素(路由器和链路层交换机)中运行,所以中间元素不
  会维持TCP连接状态。它的连接状态完全保留在两个端系统中。在实际中,中间路由器看到的只是数据包而不是
  连接。

    TCP连接提供的是全双工服务(full-duplex-service),并且TCP连接也是点对点(piont-to-piont)的,这
  就说明TCP连接是单个发送方与单个接收方之间的连接。在一次发送操作中,从一个发送方将数据传给多个接收
  方,即“多播”操作对TCP来说是不可能的。

    两个应用进程经过“三次握手”(three-way handshake)后建立TCP连接。连接建立后两个应用进程便可以
  相互发送数据了。

  

    如图所实,假设左边进程为客户进程,右边进程为服务器进程。
    客户进程通过套接字传递传递数据流。TCP将数据引导到该连接的发送缓存(send buffer)里(该缓存是
  TCP三次握手初期设置的缓存之一)。TCP会不时的从发送缓存里取出一块数据,为每块数据加上一个TCP
  首部,从而形成TCP报文段(TCP segment)。这些报文段被传递给下层的网络层,网络层再将报文段封装在
  IP数据报中。然后,IP数据报被发送到网络中。TCP在另一端接收到一个报文段后,该报文段就被放入该TCP连
  接的接收缓存中。应用程序再从此缓存中读取数据流。

    上文中说的TCP会不时的从发送缓存里取出一块数据,这里的不时在TCP规范里并没有提及确切时间,只是
  说在它“方便时”。TCP所取数据大小会受限于最大报文段长度(Maximum Segment Size,MSS)

    MSS通常根据最初确定的由本地发送主机发送的最大链路帧长度(所谓最大传输单元MTU)来确定。
    设置MSS时要保证一个TCP报文段(封装在IP数据报中在加上TCP首部,通常40个字节)适合单个链路层帧
    以太网和PPP链路层协议都具有1500字节的MTU,一次MSS的典型值为1460字节。
    需要注意:MSS是报文段里应用层数据的最大长度,不包括TCP首部。


  此文为《计算机网络 自顶向下方法》学习笔记3

面向连接的TCP概述的更多相关文章

  1. 计算机网络【六】:传输层-TCP概述 【转】

    转自:http://blog.chinaunix.net/uid-26275986-id-4109209.html 根据TCP/IP协议的分层结构,网络层之上是传输层,从层次结构上来看,传输层位于网络 ...

  2. 运输层3——传输控制协议TCP概述

    目录 1. TCP最主要的特点 2. TCP的连接 3. socket在不同场景中的含义 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户 ...

  3. TCP概述\三次握手四次挥手\报文首部,常用熟知端口号

    06.26自我总结 1.TCP概述 TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为 ...

  4. 传输控制层协议TCP概述---抄书

    1.TCP的主要特点 TCP是TCP/IP体系中非常复杂的一个协议.下面介绍TCP的最主要的特点. (1)TCP是面向连接的运输层协议.也就是说,应用程序在使用TCP协议之前,必须先建立TCP连接.在 ...

  5. TCP概述

    1. TCP提供的服务 我们知道TCP是一个面向连接.提供可靠数据数据传输服务的传输层协议.面向连接意味着发送端和接收端在交换数据前需要建立一个连接,和我们平常打电话一样,在通话前,需要拨号建立连接. ...

  6. linux网络编程(socket)之面向连接(TCP/IP)

    1.流程 服务器: 创建socket: 绑定端口: 监听: 监听到有连接请求,接受请求: 建立连接,开始对话. 客户端: 创建socket: 请求建立连接: 连接建立成功,开始对话. 2.实例代码 / ...

  7. 面向连接的tcp 编程

    from socket import * serverSocket=socket(AF_INET,SOCK_STREAM) serverSocket.bind(("",8899)) ...

  8. 计算机网络之传输层(传输层提供的服务及功能概述、端口、套接字--Socket、无连接UDP和面向连接TCP服务)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105451022 学习课程:<2019王道考研计算机网络> 学习目的 ...

  9. 第五节 面向连接传输:TCP

    第五节 面向连接传输:TCP   TCP概述RFCs:793,1122,1323,2018,2581   点对点:   一个发送方,一个接收方   可靠,按序的字节流:   无“报文边界”,无结构但有 ...

随机推荐

  1. 网络操作系统 第七章 管理TCP/IP网络

    本章小结 本章介绍了TCP/IP的相关概念,并且在此处基础上,介绍了Windows Server 2008中使用TCP/IP网络配置工具实现网络连接和管理的方法,在Linux系统中,讲解了是如何使用图 ...

  2. 转 Refresh Excel Pivot Tables Automatically Using SSIS Script Task

    Refresh Excel Pivot Tables Automatically Using SSIS Script Task https://www.mssqltips.com/sqlservert ...

  3. 01 of lenrning python

    我也打算开始写博客啦!记录一下自己的学习过程~ 01密文登陆 这个在vscode中不显示密文 在cmd中看不到密码 # -*- coding: utf-8 -*- import getpass nam ...

  4. 1-C++的并发世界

    1.1 何谓并发 并发的两种方式 多核机器上的真正并行 单核机器的任务切换 并发的两种途径 多进程并发 1.1 多进程并发需要通过操作系统进行进程间通信 多线程并发 2.1 多线程并发需要共享内存 1 ...

  5. Reids学习1 -- 初识Redis

    1. Reids和其他类型数据库对比 名称 类型 数据库存储选项 查询类型 附加功能 Redis 使用内存存储的非关系数据库 字符串,列表,集和,散列表,有序集合 每个类型有自己的专属命令,还有批量操 ...

  6. Email发展历史

    据我所知:1987年9月20日,有“中国互联网第一人”之称的钱天白从北京经意大利向前联邦德国卡尔斯鲁厄大学发出了中国第一封电子邮件,内容是“ 穿越长城,走向世界”.这是中国人在网络上的第一步,他开创了 ...

  7. Python编程练习:平方值格式化

    问题描述:获得用户输入的一个整数N,计算N的平方值:结果采用宽度20字符方式居中输出,空余字符采用减号(-)填充.如果结果超过20个字符,则以结果宽度为准. 示例: 源码: a = int(input ...

  8. 谈谈Java中的代理模式

    首先来看一下代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用, 其特征是代理类与 ...

  9. Javascript高级编程学习笔记(79)—— 表单(7)选择框脚本

    选择框脚本 选择框由<option>和<select>元素创建,为了方便选择框的交互,除了提供表单字段的公有方法之外 HTMLSelectElement 类型还提供下列特有的属 ...

  10. 7.侧滑、ViewDragHelper、属性动画

    实现这样的效果: ## 侧滑面板(对ViewGroup的自定义)* 应用场景: 扩展主面板的功能* 功能实现: > 1. ViewDragHelper: Google2013年IO大会提出的, ...