TCPIP 协议简单分析.doc

TCPIP 协议简单分析.doc

ID:56003029

大小:89.50 KB

页数:4页

时间:2020-03-15

TCPIP 协议简单分析.doc_第1页
TCPIP 协议简单分析.doc_第2页
TCPIP 协议简单分析.doc_第3页
TCPIP 协议简单分析.doc_第4页
资源描述:

《TCPIP 协议简单分析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、首先TCP和IP是两种不同的协议,它们来七层网络模型中分别在不同的层次,IP协议是网络层的协议,TCP是更高一层的传输层的协议,TCP是建立在IP协议Z上的,所以一般把TCP和IP连在一起说TCP/IP协议。Windows系统的TCP协议栈的数拥包默认是1460字节大小,如果一次传输的数据大于这个长度,会把分割成儿个长度都不大于1460字节的TCP数据包,每个数据包都会被赋予—个sequncenumber(相当于每个数据包的顺序号,凭这个接收端可以知道数据包的前后顺序)Z后TCP的数据包再被包裹上一层IP的数据的头,形成I

2、P数据包在网上传输(-其实最后还要包一层以太网数据包,网络上最终传输的都是以太网数拥包)。IP数据包到了目的地后,接收端首先把IP数据包的包头去掉,取出TCP的包。接收端每收到一个TCP的数据包都需要返冋给发送端一个ACK的数据包告诉发送端已接到此数据包,如果接收端在一定的时间内没有收到某个数据包的ACK响应,会再次发送这个数据包,这样就保证了数拥都能被接收端接收到(因特网上丢数据包是很正常的事,如果没仃数拥包重发机制,很难保证发送的数据都能被接收端完整的收到)。每个TCP数据包也是山包头和实际数拥组成,包头包含如下主要内

3、容:•Sourceport(2字节)发送端的端口号•Destinationport(2字节)接收端的端口号TCP包头中只包含双方的端口号,双方的IP地址在IP包的包头,所以在TCP数据包的包头中没有IP地址。•Sequencenumber(4字节)数据的顺序号,表示当前数据包中的数拥起始顺序号,比如前一个数据包的SEQ为十六进制的:dfd5aa3d,数拥包的实际数据长度为16字节,那么下一个数据包的SEQ就要在前一个数据包的SEQ基础上加上16,为:dfd5aa4d•Acknowledgementnumber(4字节)接收

4、到对方的某个数据包后的冋应顺序号。如果接收到了对方主动发送来的某个数据包,必须要返冋对方一个ACK冋应数据包,数据包的头部的Acknowledgementnumber部分根据对方发送数据的SEQ和实际数据长度,返冋SEQ+实际数据长度,表示已经接收到这个数据包。对方收到这个冋应,根据数值计算后知道这个数据包已经被对方接收。如果接收不到ACK的冋应,就意味着这个数据包已经在网上被丢失,需要重新发送此数据包。•Headerlength(1字节)表示TCP数拥包的包头长度,整个TCP数拥包的长度减包头长度就能得到TCP数据包的实

5、际传送的数据长度。•Flags(1字节)标志字节,每一位都是一个标志,以下是儿个主要标志:ACK-表示数据包是个ACK冋应数据包,表示接收到了对方的某个数据包,具体哪个包山包头的Acknowledgementnumber部分指示。PSH-表示这是个冇实际数据的包。SYN-表示这是个建立连接的数据包,通讯双方要通讯,总是山客户端先发送SYN数据包到服务端以建立TCP的连接。FIN-表示通讯结束,拆除连接的数据包。客戶端(IP:Port)下面描述一次TCP传送数据的完整过程,以一个客户端向服务端发送一些数据为例。11.1[SY

6、N]客户端初始SEQ111.2[SYN][ACK]服务瑞初始SEQ—1.3[ACK]1>111n2・1客戶瑞发送服务端数据包U11112.2服务诵发往客户端[ACK]11U1!111!2.N服务端发往客戶端数据包I111n2.N+1客户端发送服务端的[ACK]1、

7、1113・1客户端发送[FIN]U11、111W3・2服务端发送[ACK][FIN]>-3.3客户端发送[ACK]1J1服务端(IP:Port)Figure1.一次完整的TCP通讯的过程1、建立连接TCP是面向连接的协议,客户端和服务端要通讯就必须先建立一个连接

8、。首先通讯双方都有地址,就是IP地址加端口号(IP:Port)标识通讯的每一端,客户端的IP:Port跟服务器IP:PortZ间就构成一个socket套接字。所谓建立连接就是在客户端的IP:Port跟服务器IP:PortZ间建立一个通道,初始化一些通讯的基础设置,以便以后的数据通讯的正常进行。1.1.客户端发送SYN总是客户端发起连接,首先客户端发送SYN数据包到服务端以建立TCP连接。SYN数据包只有TCP包头,没有实际数据。Flags标志字节的SYN位置位,表示是SYN数拥包。Sequencenumber山客户端随机生

9、成一个4字节的数据,作为本次连接通讯客户端数据的起始顺序号,以后客户端发往服务端的数据包的Sequencenumber都在此基础上加上每次传送的实际数据长度依次相加递增,这样根据每个数据包的Sequencenumber就能判断出数据包的前后顺序,以便接收方根据数据包的顺序拼接数据包。1.1.服务端回应A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。