TCP和UDP的详细内容

1.TCP和UDP的报头

TCP报文头部:

Source Port:源端口,标识哪个应用程序发送。长度为16比特。

Destination Port :目的端口,标识哪个应用程序接收。长度为16比特。

举一个例子:客户端向服务器端发送一个数据,其中客户端比如是网页的浏览器,服务器端是网站。那么其中的源端口就是网页的浏览器,目的端口就是网站

Sequence Number:序列字段。tcp连接中的每个报文的都有序列号。长度为32比特。

Acknowledgment Number:确认号,用于对收到的确认。

其中序列号和确认号是一个组合。是为了保证每个数据包对方都成功收到。Header Length:头部长度,tcp报文头部长度,默认情况下,tcp头部为20个字节。注意:这个只是代表tcp的头部有多长,而不是被数据有多长。

Control bits:控制位,包含FIN,ACK,SYN等标志位.

Window:窗口tcp的流量控制,这个值表明当前接收端可接收的最大的数据总数(以字节为单位)窗口最大为65535字节。长度为16比特,它是根据接收者的能力来灵活地控制发送速度,接受方会告诉发送者我的接收能力有多大,你根据我的接收能力来给我发送数据,这样的话我们传输比较稳定,这个window不是一个固定的值,当接受者的能力变大的时候,相对于的window也会变大。

Checksum:校验字段,由发送端计算和存储,并由接收端进行校验,用于校验数据传输过程中有没有损坏。

UDP报文头部:

Source Port:源端口,标识哪个应用程序发送。长度为16比特。

Destination Port :目的端口,标识哪个应用程序接收。长度为16比特。

Length:报文的总长度。

2.TCP的三次握手

三次握手就是指建立一个 TCP 连接,需要客户端和服务端发送三个数据包互相确认的过程。三次握手是为了确认对方和自己是否都准确接收到数据包。

三次握手是要建立双向连接,如下图,双向连接就是pc1能找到pc2,pc2也能找到pc1.

我们可以看出来pc1的源地址是1.1.1.1,目的地址是2.2.2.2,也就是说pc1要发送数据发往pc2,syn位置位为1就是代表这是一个请求的包。其中的序列号是随机的,也就是a。

pc2接收到数据包之后,就是同意建立连接,ack置位等于1也就是同意建立连接。确认号也就是a+1。是pc1发送数据包的序列号加1.

最后pc1再给pc2发送一个确认包。

3.TCP的四次握手

四次握手是基于前面三次握手建立成功之后,数据传完之后,在进行第四次的握手断开

 pc1给pc2发送一个FIN置位的为1,就是请求断开连接

pc2接收到之后,同意断开连接,就会发一下ack置位的确认消息,同时会发一下确认号,确认号就是请求断开的连接的序列号+1.
当pc2发完之后就会给pc1发送一个FIN置位的请求断开连接,最后pc1再给pc2发送一个同意断开连接的报文。

本课程讲完,欢迎私信

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值