您的位置:首页 > 理论基础 > 计算机网络

TCP和UDP以及IP报文格式

2017-05-31 09:14 501 查看
转载自:
http://blog.csdn.net/kernel_jim_wu/article/details/7447377 http://www.360doc.com/content/12/1218/10/3405077_254718387.shtml
之前一直对数据在网络中传送的报文不清楚,通过查阅了相关资料,总结出了TCP和UDP和IP报文的格式:

TCP和谈只定义了一种报文格局

    

 建立、拆除连接、传输数据应用同样的报文



 TCP报文格局

TCP报文段首部(20个字节)


 源端口和目标端口:各占2个字节,16比特的端标语加上32比特的IP地址,共同构成相当于传输层办事接见点的地址,即“插口”;


 这些端口可用来将若干高层和谈向下复用;

序号字段和确认序号字段:


 序号:占4个字节,是本报文段所发送的数据项目组第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。例如,一报文段的序号为300,而起数据供100字节,则下一个报文段的序号就是400;


 确认序号:占4字节,是期望收到对方下次发送的数据的第一个字节的序号,也就是期望收到的下一个报文段的首部中的序号;


 因为序号字段有32比特长,可以对4GB的数据进行编号,如许就可包管当序号反复应用时,旧序号的数据早已在收集中消散了;

数据偏移字段


 数据偏移:占4比特,默示数据开端的处所离TCP报文段的肇端处有多远。这实际上就是TCP报文段首部的长度。因为首部长度不固定,是以数据偏移字段是须要的。


 保存字段: 6比特,供往后应用,今朝置为0。

6个比特的把握字段


 紧急比特URGent:当URG=1时,注解此报文应尽快传送,而不要按本来的列队次序来传送。与“紧急指针”字段共同应用,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号,使接管方可以知道紧急数据共有多长;


 确认比特ACK:只有当ACK=1时,确认序号字段才有意义;


 急迫比特PSH:当PSH=1时,注解恳求远地TCP将本报文段立即传送给其应用层,而不要比及全部缓存都填满了之后再向上交付。


 复位比特ReSeT:当RST=1时,注解呈现严重错误,必须开释连接,然后再重建传输连接。复位比特还用来拒绝一个不法的报文段或拒绝打开一个连接;


 同步比特SYN:在建树连接时应用,当SYN=1而ACK=0时,注解这是一个连接恳求报文段。对方若赞成建树连接,在发还的报文段中使SYN=1和ACK=1。是以,SYN=1默示这是一个连接恳求或毗邻接管报文,而ACK的值用来区分是哪一种报文;


 终止比特FINal:用来开释一个连接,当FIN=1时,注解欲发送的字节串已经发完,并请求开释传输连接;

窗口字段


 窗口Window:占2字节,默示报文段发送方的接管窗口,单位为字节。此窗口告诉对方,“在未收到我的确认时,你可以或许发送的数据的字节数至多是此窗口的大小。”


 通知窗口advertised window:接管端按照其接管才能承诺的窗口值,是来自接管端的流量把握。接管端将通知窗口的值放在TCP报文的首部中,传送给对方。


 拥塞窗口congestion window:是发送端按照收集拥塞景象得出的窗口值,是来自发送端的流量把握。


 查验和覆盖了全部的TCP报文段:TCP首部和TCP数据。这是一个强迫性的字段,由发端策画和存储,由收端进行验证。


选项字段容许每台主机设定可以或许接管的最大TCP载荷才能(缺省536字节) 。



TCP分节的封装

 TCP的数据编号与确认

数据流、报文段和序号


 TCP通信的动作

    

 切割:按照合适传输的大小对数据流进行切割

        

 最大报文段长度<64Kbytes

        

 凡是:MTU-(IP头+TCP头)

    

 答复复兴:用报文段恢答复复兴始数据流的字节次序

    

 序号:排序、查错及数据流答复复兴



 TCP数据流的切割与答复复兴

报文序号


 根据数据流中的字节序号(流序号)


 报文序号为报文段中第一字节的流序号

   

 如:流序号=x,长度=L的报文段,则:

          报文的序号为x,下一报文序号为x+L


 序号特点

  

 报文的次序关系

  

 数据流的地位,更便于流的答复复兴

  

 需较大的序号空间(32bit,4Gbyte)


 例如:在一个报文中,序号为300,而报文中数占领100字节。

下一个报文符,其序号为400;



UDP报文格式:



源端口号和目的端口号如上和TCP的相同。

UDP长度:UDP报文的字节长度(包括首部和数据)。

UDP校验和: 检验UDP首部和数据部分的正确性。

IP报文格式:



版本:指IP协议的版本。

首部长度:首部的长度

服务类型:如下图:

 


其中优先级用来区别优先级别不同的IP报文。

D表示要求有更低的时延。

T表示要求有更高的吞吐量。

R表示要求有更高的可靠性。

总长度:报文的长度。

标识:由于数据报长度超过传输网络的MTU(最大传输单元)而必须分片,这个标识字段的值被复制到所有数据报分片的标识字段中,使得这些分片在达到最终的目的地时可以依照标识字段的内容重新组成原先的数据报。

标志:最低位是MF,MF=1时,表示后面还有分片。

           中间位的DF,DF=1时,表示不能分片。

片偏移: 和前面的数据分片相关,是本分片在原先数据报文中相对首位的偏移位。

生存时间:数据报在网络中存活的时间,所允许通过的路由器的最大数量,没通过一个路由器,该值自动减一,如果数值为0,路由器就可以把该数据报丢弃。

协议: 指出数据报携带的数据是使用何种协议,以便目的主机的IP层能知道次数据报上交到哪一个进程(不同协议有一个专门不同的进程处理)。

首部校验位和:对首部进行校验运算。

                          校验方法 : 在发送端,将IP数据报首部划分为多个16位的二进制序列,并将首部校验和字段置为0,用反码运算将所有16位序列对位相加后,将得到多的

                                               和的反码写入首部校验和字段。接收端接收到数据报后,将数据报首部的所有字段组织成多个16位的二进制序列,再使用反码运算相加

                                               一次,将得到的结果取反。如果结果为0代表没出错,否则出错。

源地址:发送数据报的节点地址。

目的地址:接受数据报的节点地址。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: