第三章 传输层

  1. 实现可靠数据传输的主要措施有哪些?这些措施主要用于解决哪些问题?

1)差错检测。利用差错编码实现数据包传输过程中的比特差错检测或甚至纠正。
2)确认。接受方向发送方反馈接收状态。
3)重转。发送方重新发送接收方没有正确接收的数据。
4)序号。确保数据按序提交。
5)计时器。解决数据丢失问题。

  1. UDP与TCP分别如何实现复用与分解

UDP: UDP套接字<目的IP地址,目的端口号>,UDP套接字的端口号是UDP实现复用与分解的重要依据。
TCP: TCP套接字<源IP地址,源端口号,目的IP地址,目的端口号>,当一个TCP报文段到达主机时,4个字段都被用来将报文段分解到相应的套接字。

  1. 请画出TCP报文段结构,并简要说明各个字段的主要作用


    TCP报文段结构
  1. 源端口(16字节)和目的端口源(16字节):用于多路复用/分解来自或送到上层应用的数据
  2. 序号(32字节)和确认号(32字节):序号是对每个应用层数据的每个字节进行编号,确认序号是期望从对方接收数据的字节序号
  3. 首部长度(数据偏移)(4字节):TCP段的首部长度
  4. 保留字段(16字节):为今后使用
  5. URG-通知此报文段中有紧急数据;
    ACK-标识确认序号;
    PSH-尽快将报文段中的数据交付接收应用进程;
    RST-表明TCP连接中出现严重差错,必须释放连接,然后再建立TCP连接
    SYN-TCP报文段是一个建立新连接请求控制段或者是同意建立新连接的确认段
    FIN-TCP报文段的发送端数据已经发送完毕,并请求释放TCP连接
  6. 接收窗口(16字节):实现TCP的流量控制
  7. 校验和(16字节):提供差错检验功能
  8. 紧急指针(16字节):URG=1时,指出紧急数据最后一个字节在数据中的位置
  9. 选项:用于对方TCP通告其缓存能够接收的数据段的最大长度是MSS个字节
  10. 填充:取值全0,是为了整个首部长度是4字节的整数倍
  1. TCP为何采用三次握手来建立连接,若采用二次握手可以吗?为什么?

为了确保连接双方彼此完全清楚对方状态,从而保证可靠,稳定地建立连接,同时有效预防过期,失效的连接请求达到后,导致无效连接的建立。
不能采用二次握手,因为网络存在数据丢失,第二次握手控制段可能丢失,发起连接方没有收到第二次握手控制段,无法建立连接;接受连接方认为已建立连接,从而连接失效

  1. 请说明TCP建立连接与断开连接的过程,并给出主要状态转移

第一次握手,客户端向服务器发送(SYN=1,seq=x)的SYN段。客户端进入SYN_SEND状态
第二次握手,服务器收到SYN段,向客户端发送(SYN=1,ACK=1,seq=y,ack_seq=x+1)的SYNACK段,进入SYN_RECD状态
第三次握手,客户端收到SYNACK段,向服务器发送(ACK=1,sep=x+1,ack_seq=y+1)的ACK段,客户端进入ESTABLISHEN状态;当服务器收到ACK段,也进入ESTABLISHEN

  1. TCP如何保证可靠数据传输?
    差错编码,确认,重传,记时器来保证TCP的可靠数据传输
  2. 请分别简述GBN协议和SR协议的工作过程
    GBN协议的发送窗口大于等于1,发送端发送未得到确认前的多个分组;而接收端只能接收1个按序达到的分组,未按序到达的分组则丢弃,并且通知发送方重新发送按序分组。
    SR协议的发送窗口和接收窗口大于等1,发送端发送多个分组,接收端缓存失序的分组,通知发送端重传丢失或者未被接收的分组
  3. 说明TCP滑动窗口机制,对比TCP滑动窗口与GBN协议的异同

TCP滑动窗口机制

  1. 数据分割成发送的数据块,再封装成TCP段,传递给IP
  2. 当TCP发出一个段后,启动一个计时器,等待目的端确认收到这个报文段。
  3. TCP首部设有校验和字段,用于检测数据在传输过程中是否发生差错。有差错,则丢弃和不确认;无差错,则向发送方发送确认段。
  4. TCP报文段的达到也可能会失序,TCP将根据序号对收到的数据进行重新排序,以正确的顺序交给应用层。
  5. 由于存在网络延迟和重传机制,TCP的接收端可能接收重复的报文段,需要根据序号丢弃重复的报文段。
  6. TCP提供流量控制,防止较快主机发送数据太快,致使较慢主机的缓冲区溢出。

异同点:
GBN协议中,发送端的发送窗口大小是固定的,接收端的接受窗口大小等于=1,发送方只会对当前发送窗口的"基序号"的分组进行记时,只使用一个记时器;对于失序分组,接收端则丢弃。
TCP滑动窗口中,发送端和接收端的窗口大小是动态变化,每发送一个报文段,启动一个计时器。对于失序的报文段,进行重新排序。

  1. TCP与UDP的主要区别是什么?
    UDP提供不可靠,无连接,数据报传输服务的传输层协议;
    TCP提供面向连接的可靠数据传输服务的传输层协议,TCP通过三次握手建立连接,通过四次挥手断开连接。
  2. TCP如何实现拥塞控制
    通过调节窗口的大小实现对发送数据速率的调整;网络未发生拥塞时,逐渐加性增大窗口大小,网络拥塞时,乘性快速减小窗口大小。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352