UDP、TCP基础笔记

UDP:用户数据报协议

  UDP是一个简单的面向数据报的协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报;

  1.UDP首部:UDP首部是有8字节组成

   1)16bit源端口号和16bit目的端口号

   2)16bitUDP长度:指的是UDP首部和UDP数据的字节长度;

   3)UDP检验和:UDP和TCP在首部中都有覆盖它们首部和数据的检验和。UDP的检验和是可选的,而TCP的检验和是必选的。UDP的检验和覆盖了它的首部和数据,其计算方式和IP的检验和是有一定区别的。首先,IP的检验和计算的只是首部没有数据部分,其次,UDP数据报的长度可以为奇数字节,那么在计算检验和的时候要在最后添加0进行不齐,最后,如果UDP数据的接收端发现检验和有错那么就会直接丢弃掉数据;

  2.IP分片

            1)为什么要分片

   物理网络层一般要限制每次发送数据帧的最大单元(MTU),所以当IP层接收到一份要发送的IP数据报时,它除了要判断向本地哪个接口发送数据外,还要查询该接口获得其最大传输单元(MTU)。如果查询出来的最大传输单元小于要传输的IP数据报长度,那么就要进行IP分片;

   2)与IP分片相关的首部字段是哪些

   在IP首部中,标识字段,标志字段和片偏移字段是用来对IP数据报进行分片的。我们接下来一一讨论这些字段的用处是什么。首先,标识字段,这个字段对于要发送的IP数据报来说是唯一的,每个分片都会复制这个字段(表明了它们产生与同一个大的IP数据报,一母同胞)。其次,标志字段,这个字段占3bit,其中一位用来表示“还有分片”,所以除了最后一个分片外其他分片的这一位都会置为1。标志字段还有一位用来表示“不分片”,如果这一位置为了1,那么IP数据报就不会进行分片(如果IP数据报长度大于MTU那么就会产生ICMP不可达差错报文)。最后,片偏移字段,指的是该片偏移原数据报开始处的位置。

    3)分片后每个分片的构成

    IP分片后,每片就成为了一个分组,具有了自己独立的IP头部(这个头部的IP长度字段需要更改为当前分片的长度),具有了自己独立选路的特性(这也使得IP分片到达接收端可能会出现失序的现象)。值得注意的是每个分片都有自己的IP头部,但是只有第一个分片是具有传输层协议的头部,其他分片都没有。

TCP:传输控制协议

    TCP向应用层提供的服务是与UDP向应用层提供的服务是不同的,TCP协议提供了一种面向连接的,可靠的字节流服务。

    1.TCP协议如何保证其可靠性

    1)应用数据被分割成TCP认为最适合发送的数据块;

    2)当TCP发送一段后,它将启动一个定时器,等待目的端确认收到这个报文(超时与重传策略);

    3)对收到的数据TCP总是会发送一个确认;

    4)TCP首部的检验和是必须的(超时与重传策略);

    5)丢弃已传数据报;

    6)提供流量控制机制(TCP缓冲区);

    7)提供失序重排机制(保证了以正确的顺序提交给应用层);  

    2.TCP协议的首部构成   

    如果不算上任选字段,TCP首部通常是为20个字节的,其组成字段为:

    1)16位源端口号和16位目的端口号(它们确定了一个TCP的连接)

    2)32位序号:用来标识从TCP发送端向TCP接收端发送的数据字节流,每发送一个字节的数据序号增加1,其取之范围为0到65534,当超过这个范围后重新从0开始;

    3)32位确认序号:包含的是发送确认一端期望的下一个序号,也就是说确认序号存储的是上次接收数据序号+1的值;

    4)4位首部长度

      5)6bit标志字段:它们中可以有多个位同时置为1,其中包括URG(紧急指针有效),ACK(确认序号有效),PSH(接受方应该尽快将这个报文交给应用层),RST(重新连接),SYN(同步序号用来发起一个连接),FIN(发送端完成发送任务)

    6)16位窗口大小字段:TCP的流量控制是由连接的每一端通过窗口大小来提供的,窗口大小为字节数,这个值是接收端期望接收的字节;

    7)检验和字段:其覆盖了TCP的首部和其数据部分,对于TCP来说是一个强制字段,一定是由发送端计算存储,由接收端进行验证的;

    8)16位紧急指针字段

    9)任选字段

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值