`

TCP-IP摘记(TCP协议)

阅读更多

Tcp服务

1.Tcp是面向连接的,交换数据之前必须建立连接。

2.与UDP不同,应用程序产生的数据报长度将保持不变。

3.TCP发出一段后,后启动一个定时器,等待目的端确认收到这个报文段。如果没收到确认,将重发。

4.如果必要,TCP会对收到的数据进行重新排序。

5.如果IP数据报发生重复,TCP接收端必须丢弃重复的数据。

6.TCP还能提供流量控制。TCP接收端只允许另一端发送接收端缓冲区所能接纳的数据。

 

Tcp首部



 

 

 

6位标志的类型

U R G 紧急指针( u rgent pointer)有效(见2 0 . 8节)。

A C K 确认序号有效。

P S H 接收方应该尽快将这个报文段交给应用层。
R S T 复位连接。(在重传多次失败时会发)

S Y N 同步序号用来发起一个连接。这个标志和下一个标志将在第1 8章介绍。

F I N 发端完成发送任务。

 

 

 

 

==============TCP连接的建立和关闭============================

 

连接建立:



 

(1)svr4发起SYN段,序号S1为1521,最大分段为1024字节

(2)bsdi发起ACK端响应,序号S2是3521,响应A1为S1+1

(3)svr发起ACK应答,A2=S2+1

 

连接终止



 

因为TCP是双工的,所以要分两次关闭。

(1)客户端向服务端发起关闭请求FIN

(2)服务端向客户端发起响应ACK

(3)服务端向客户端发起响应关闭请求FIN

(4)客户端响应ACK

 

 



 

 

解释下MSS:

TCP-IP协议卷1 写道
最大报文段长度( M S S)表示T C P传往另一端的最大块数据的长度。当一个连接建立时,连接的双方都要通告各自的M S S。(注:是内容长度,抛开IP头和TCP头的长度)
报文段越大允许每个报文段传送的数据就越多,相对I P和T C P首部有更高的网络利用率。当T C P发送一个S Y N时,或者是因为一个本地应用进程想发起一个连接,或者是因为另一端的主机收到了一个连接请求,它能将M S S值设置为外出接口上的M T U长度减去固定的I P首部和T C P首部长度。

 



 

上图协商后的MSS为256,可想而知网络MTU为256+40=296

 

TCP连接打开关闭对应的状态



 

(1)所有状态都是端在发送消息后处于的状态。

(2)需要注意的是最后一个TIME_WAIT

    TIMEWAIT 是一个超时等待状态,用于等待最后一个ack能发送完毕。等待时间一般为2MSL(两倍报文最大生存时间),这样做的好处是确保报文能够被发送结束。如果2MSL内ack还未送达,last_ack的一方会再次发送FIN,这样就保证了最后一个ACK是可靠的。

 

    

TOBECONTINUE

  • 大小: 34.9 KB
  • 大小: 62.6 KB
  • 大小: 20.7 KB
  • 大小: 28.7 KB
  • 大小: 34.5 KB
  • 大小: 17.7 KB
  • 大小: 41.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics