计算机网络原理梳理丨传输层

目录

  1. 传输层的基本服务
  2. 传输层的复用与分解
  3. 停—等协议与滑动窗口协议
  4. 用户数据报协议(UDP)
  5. 传输控制协议(TCP)

传输层的基本服务

传输层的核心任务是为应用进程之间提供端到端的逻辑通信服务

主要功能都有:

  • 传输层寻址
  • 应用层报文的分段和重组
  • 报文的差错检测
  • 进程间的端到端可靠数据的传输控制
  • 面向应用层实现复用与分解
  • 端到端的流量控制
  • 拥塞控制
传输层功能

传输层协议提供逻辑通信服务
传输层协议只需在端系统中实现
通信的真正断电并不是主机,而是主机中运行的应用进程

注意:传输层负责的是应用服务间的通信,网络层负责的是主机间的通信。

传输层寻址与端口
  1. 用统一的寻址方法对应用进程进行标识——端口号。如常见的 HTTP 服务,端口号为 80

  2. 在全网范围内利用“IP地址+端口号”唯一标识一个通信端点

  3. 传输层端口为16位整数,包含三类:
    3.1 数值为0-1023:熟知端口号,如 HTTP 协议的80端口
    3.2 数值为1024-49151:登记端口号,需要向IANA申请注册,防止重复
    3.2 数值为49152-65335:短暂端口号 或 客户端口号,留给客户进行选择暂时使用

TCP协议:POP3 端口号 110 、SMTP 端口号 25 、HTTP 端口号 80
UDP协议:DNS 端口号 53

无连接服务与面向连接服务
  1. 无连接服务:数据传输之前无需与对端进行任何信息交换(即“握手”),直接构造传输层报文段并向接收端发送。——UDP

  2. 面向连接服务:在数据传输之前,需要双方交换一些控制信息,简历逻辑连接,然后再传输数据,数据传输结束后还需要再拆除连接。——TCP


传输层的复用与分解

多路复用与多路分解

多路复用与多路分解是传输层的一项基本功能,支持众多应用进程共同使用同一个传输层协议,并能够将接受到的数据准确交付给不同的应用进程。

无连接的多路复用与多路分解

UDP 套接字:<目的IP地址,目的端口号>
UDP 套接字的端口号是 UDP 实现多路复用与多路分解的重要依据

面向连接的多路复用与多路分解

TCP 套接字:<源IP地址,源端口号,目的IP地址,目的端口号>
当一个 TCP 报文段从网络层到达主机时,该主机会根据这四个值来将报文段分解到相应的套接字。


停—等协议与滑动窗口协议

可靠数据传输的基本原理
  1. 差错检测:利用差错编码实现数据包传输过程中的比特差错检测
  2. 确认:接收方想发送方反馈接收状态
  3. 重传:发送方重新发送接收方没有正确收到的数据
  4. 序号:确保数据按序提交
  5. 计时器:解决数据丢失问题
停-等协议

停-等协议协议的主要特点是发送发没发送一个报文段后就停下等待接收方的确认

工作过程为:

  1. 发送方发送经过差错编码和编号的报文段,等待接收方的确认;(发送并等待确认)
  2. 接收方如果正确接受报文段,即差错检测无误且序号正确,则接受报文段,并向发送方发送ACK,否则丢弃报文段,并向发送方发送NAK;(接受并确认/否认)
  3. 发送方如果收到ACK,则继续发送后续报文段,否则重新发送刚发的报文段。(继续发送/重发)
滑动窗口协议

由于停-等协议降低了信道利用率,限制了传输性能,所以出现了改进解决方案——流水线协议(管道协议),采用这种协议将允许发送方在没有收到确认前连续发送多个分组,流水线协议增加了分组序号的范围,发送方和(或)接收方必须缓存多个分组

滑动窗口协议就是典型的流水线协议

其实停-等协议也算是滑动窗口协议的一种

代表性的滑动窗口协议:

  1. 回退N步:(Go-Back-N,GBN)协议
    发送端窗口大小较大,可以在未得到确认前连续发送多个分组,但接收端窗口大小仅为1,只能接受1个暗许到达的分组,未按序到达的分组或者某个分组差错,就会引起发送方抽发改分组及其之后的所有分组。

  2. 选择重传:(Selective Repeat,SR)协议

增加接收方方缓存能力(接收窗口>1),缓存正确到达但失序的分组,仅要求发送方重传违背接收方确认的分组,等确实的分组到达后,一并想上层按序提交


用户数据报协议(UDP)

用户数据报协议 UDP 是 Internet 传输层协议,提供无连接、不可靠 、数据报尽力传输服务

UDP 数据报结构
  1. 源端口号和目标端口号:用于实现复用与分解
  2. 长度字段:在 UDP 报文段中的字节数(首部和数据的总和)
  3. 校验和:接收方用来检测该报文段是否出现差错
UDP 校验和的计算
  1. 对所有参与运算的内容(包括UDP报文段)按16位(16位对齐)求和
  2. 球和过程中遇到任何溢出(即进位)都被回卷(即进位与和的最低位再加)
  3. 最后得到的和取反码

传输控制协议(TCP)

传输控制协议 TCP是 Internet 传输层协议,提供面向连接可靠传输服务。TCP 报文首部的大小一定是4字节的倍数,其中固定首部大小为20字节且不变。

TCP 报文段结构

源端口号:报文发送方地址
目的端口:报文接收方地址
序号:报文的顺序编号
确认号:接收方返回接下来希望接收的数据的序号
数据偏移:报文可能会分为若干段,此字段表示拆分后的序号
ACK:确认位,当它的值为1时,确认号才是有效的
SYN:同步请求,TCP连接中连接双方协商初始的序号
RST:复位,TCP连接中数据传输发生异常需要重新发送
FIN:通信结束后,当它的值为1时拆除连接
窗口:告诉对方接受窗口有多大,大小可变,流量控制时使用
校验和:TCP对数据进项校验时使用

TCP 建立连接

建立连接需要 3次握手

  1. SYN连接请求
  2. SYNACK确认
  3. ACK确认
TCP 断开连接

断开连接需要 4次挥手

TCP 可靠数据传输
  1. TCP 的可靠数据传输实现机制包括差错检验、确认、序号、重传、计时器等。
  2. TCP 的可靠数据传输基于滑动窗口协议,但是发送窗口的大小动态变化。
  • 封装TCP报文
  • 发出一个报文段后启动一个计时器
  • 通过校验和发现数据差错
  • 通过需要重新排序,丢弃重复的报文段
  • 流量控制
TCP流量控制
  1. TCP 协议通过滑动窗口协议实现流量控制,但不是简单的滑动窗口协议,它的窗口是可以动态变化的。
  2. TCP 建立时,双方都为之分配了固定大小的缓冲空间,TCP的接收端只允许另一端发送其缓冲区所能接纳的数据。
    2.1 接收端在给发送端发送确认段时,通告接受窗口的大小
    2.2 发送端在接下来发送数据段时,确保未确认段的应用层数据总量不超过接收端的接受窗口大小,从而确保接收端不会发生缓存溢出。
TCP拥塞控制
  1. 窗口机制
    通过调节窗口的大小实现对发送数据速率的调整

  2. 窗口调整的基本策略
    加性增加,乘性减小(Additive Increase,Multiolicative Decrease,AIMD)
    网络未发生拥塞时,逐渐“加性”增大窗口大小,当网路拥塞时“乘性”快速减小窗口大小

  3. TCP的拥塞控制算法
    包括慢启动、拥塞避免、快速重传、快速恢复4个部分


本篇到此完结,计算机网络知识 系列文章已全部发布!

计算机网络原理梳理丨计算机网络的概念
计算机网络原理梳理丨应用层
计算机网络原理梳理丨传输层
计算机网络原理梳理丨网络层
计算机网络原理梳理丨链路层
计算机网络原理梳理丨物理层
计算机网络原理梳理丨无线与移动网络
计算机网络原理梳理丨网络安全
计算机网络原理梳理丨HTTP 请求全解

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

推荐阅读更多精彩内容

  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 2,404评论 0 2
  • 【计算机网络】传输层 传输层协议概述 传输层协议为运行在不同host上的进程提供了一种逻辑通信机制。使得端到端不需...
    666真666阅读 1,995评论 0 4
  • 本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下--应用层2.计算机网络自顶向下--运输层3....
    牛富贵儿阅读 2,749评论 0 3
  • 协议的定义 为了在计算机网络中有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确规定了所交换数据的格...
    王侦阅读 1,685评论 0 3
  • 博主最近在复习HTTP,之前用书主要是《计算机网络》谢希仁版本,最近结合网上博客,进行复习和提纲式的总结。 一、概...
    stoneyang94阅读 4,144评论 1 8