传输层-TCP概述 (五)

根据TCP/IP协议的分层结构,网络层之上是传输层,从层次结构上来看,传输层位于网络的最高层和应用的最底层。传输层的主要作用有两个:一个是居于网络层与应用层之间提供复用和分用的服务;另一个则是需要的时候为应用层提供可靠的传输服务。复用和分用指的是传输层负责实现端到端的传输,即计算机进程之间的通信;而网络层则负责点到点的传输,最重要的功能是路由寻址。

网络通信的“用户”准确地说是位于网络节点计算机中的应用进程,我们使用端口号来区分不同的进程。传输层协议提供了一个16位的端口号,范围最大到65535。这些端口号一共分为两类:-1. 服务器端使用的端口号,最重要的一种约定俗成的端口号不允许私自使用或改变用途,数值为0-1023;另一类叫登记端口号,数值为1024-49151,这类端口号是为没有熟知端口号的应用程序使用的,使用前必须到IANA进行登记。总之0-49151不是我们可以随便使用的。-2. 客户端使用的端口号:数值为49152-65535,这类端口由客户端进程运行时动态选择,通信结束后释放该端口号,因此称之为短暂端口号,这部分是我们自己编写APP时可以使用的。

**一、用户数据报协议UDP **
传输层一种只有两个重要的协议:TCP与UDP,其中TCP是面向连接的、可靠的数据流服务,机制相对负责,里面涉及可靠传输、流量控制和拥塞控制等,我们稍后再讨论,这里我们先来看看“轻量级”的UDP协议。
UDP协议,即用户数据报协议是在IP的数据报服务之上增加了很少的一点功能,这就是复用/分用和简单的差错控制。
UDP的主要特点是:
-1. 无连接:发送数据之前不需要建立连接,因此减少了开销和发送数据的延迟;
-2. 尽最大努力交付:不保证可靠交付,因此数据传输过程中不需要维护复杂的连接状态;
-3. 面向报文的:发送方的UDP对应用层传递下的数据直接封装成UDP报文后交给IP层,既不合并,也不拆分,而是原样保留后交给IP层。UDP一次交付一个完整的报文,不会考虑数据的大小,但是为了避免在IP层出现分片,应用层必须考虑合适的数据大小。
-4. UDP可以实现N:M的通信(因为无连接);
-5. UDP没有拥塞控制; 尽管UDP是不可靠的连接,现实中也有一些服务会需要UDP,比如IP电话、视频网站等要求速度而不太注重数据完整性的服务,对于实时性要求很高,却允许丢失少量的分组,特别适合UDP的低开销的服务。一般的TCP/UDP应用服务如下:

UDP的头部只有8个字节,首先有2个字节的源端口和2个字节的目的端口,然后是2个字节的UDP长度,最后是2个字节的校验和:

二、TCP概述 TCP作为一个可靠的连接协议最大的特点就是面向连接的,即在发送数据之间要建立连接,数据传输过程中要维护连接,数据发送完毕之后要释放连接。在此基础上TCP提供可靠的传输:-1. 可靠交付:TCP传递的数据无差错、无丢失、无重复、且按序到达;-2. 全双工通信:TCP通信的每一段都维护着一个发送缓存和接收缓存;-3. 面向字节流:TCP协议把上层交付的应用层数据单纯地看成是一系列无结构的字节流; TCP连接的端点不是主机中的应用进程,而是应用进程维护的套接字接口(socket),其基本的结构包含【IP:Port】;

三、TCP可靠传输的工作原理
TCP实现可靠传输的工作原理主要有两个,我们分别来看:-1. 停止等待协议 这个协议说白了就是对于收到数据包后的确认机制,基本过程如下:1. 发送方A向接收方B发送数据分组M1;2. 接收方B收到分组M1后想A发送M1的确认;3. A接收到B发送的对于M1后的确认之后再发送分组M2;4. 若中间的某一个分组丢失或是延迟,则A就会使用超时计时器进行超时重传,每个分组发送时都会保留其副本并且设置超时计时器; 这里对于超时重传机制需要三点说明:1. A发送自己的每个分组,必须暂时保存已发送分组的一个副本,直到收到该副本的确认;2. 分组和确认分组都必须编号,这样才能对分组进行区分;**3. 超时计时器设置的时间应当比数据在分组传输的平均往返时间更长一些; 上面的机制保证了在不可靠的信道上时间可靠的传输,这种机制称为自动重传请求(ARQ),即重传的请求是自动的,不需要接收方向发送方请求重传某个分组。下面的几个图来说明超时重传的机制:


-2. 连续ARQ协议 停止等待协议的优点是简单,缺点是信道利用率太低。为此我们引入了连续ARQ协议和滑动窗口协议。滑动窗口协议是TCP协议的精髓所在,这里先来介绍基本的连续ARQ协议。1. 发送方维持的发送窗口中可以连续发送多个分组;2. 接收方采用累积确认的方式,即确认N则表示N之前的包都已经正确收到;*3. 每成功确认M个分组,发送窗口便“滑动”M个分组;

四、TCP报文段的首部格式 TCP的功能都在其首部的定义中得到体现:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容