码迷,mamicode.com
首页 > 其他好文 > 详细

网络教程(13) 深入TCP协议

时间:2019-01-05 22:50:42      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:isp   软件   ===   链路层   ack   none   数据   单元   假设   

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

 

 

Client       

Server

 

TCP连接后Client和Server就无所谓了 因为可以双向传输

技术分享图片

(建立链接

 

syn(synchronize)

 

ack 1 的意思是已经收到了seq 0 ,期待收到的是ack1 (expect 1

 

===>

SYN(seq0

 

<===

ACK(ack1

SYN(seq0

 

===>

ACK(ack1 seq1

 

技术分享图片

 

连接建立后两边都可以开始发送data

 

技术分享图片

发了22个字节后ack的是23(expect 23

 

技术分享图片

 

用软件看一下:

技术分享图片

 

这个seq num 是相对的:

技术分享图片

 

网络教程(13) 深入TCP协议

标签:isp   软件   ===   链路层   ack   none   数据   单元   假设   

原文地址:https://www.cnblogs.com/eret9616/p/10226394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!