TCP和UDP以及IP报文格式

来源:互联网 发布:51单片机发展 编辑:程序博客网 时间:2024/05/18 00:18

转载自:

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代表没出错,否则出错。


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

目的地址:接受数据报的节点地址。 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 狗狗车祸前脚软组织受伤了怎么办 6岁儿童夜里盗汗惊战发抖怎么办 一个月大的小狗尾巴掉毛怎么办 口袋妖怪用修改器被ban了怎么办 联币金融提现不到账怎么办 秘密花园的手抄报怎么办?五年级 雷蛇鼠标不亮了怎么办呢 汽车后备箱的垫子好臭怎么办 摩托尾箱内衬味道太重怎么办 买房子把办贷款的单据丢了怎么办 鞋盒破损卖家拒绝退货怎么办 顺丰快递退回发件人签收失败怎么办 客户收到衣服后说衣服破损怎么办 纱窗被老鼠咬了个洞怎么办 双色印刷机开槽刀调不动怎么办 水管软管两端的螺帽下包生锈怎么办 棉花被子盖时间长了被芯变小怎么办 垫的被子发霉了啊没有地方晒怎么办 小孩拉尿在丝棉被棉怎么办 把兔子养大了竟然会咬人怎么办 小兔子生下来母兔子不喂奶怎么办 11个月的宝宝肚子有小白虫怎么办 电焊把脸烤了痒的不行怎么办? 还没满月的宝宝吐奶怎么办 周岁宝宝发烧腹泻吃药老吐怎么办 生完宝宝后肚皮很黑怎么办 两个月宝宝抵抗力差总生病怎么办 两岁宝宝只会说几个简单的词怎么办 两岁宝宝对绘本不感兴趣怎么办 一岁十个月宝宝不爱吃饭怎么办 孩子上三年级学习太差应该怎么办 mac系统打数字出显符号怎么办 我太粗心了工作中总犯错怎么办 四年级的孩子数学计算总粗心怎么办 小孩做作业拖拉的很厉害怎么办 二年级孩子做作业太粗心怎么办 发现孩子做作业时玩手机怎么办 高三孩子考试时慌乱老粗心怎么办 助班面试你的学生不喜欢你怎么办 上三年级的小孩不愿做作业怎么办 快一年了孩子上幼儿园总哭怎么办