传输层协议


传输层协议

TCP端口号

image-20230719142651820

  • TCP允许一个主机运行多个应用程序,每台主机拥有多个应用端口,每对端口号,源和目的IP组合唯一标识一个对话。
  • 端口分为知名端口(0-1023,如FTP、HTTP等)和动态端口(1024-65535,不固定分配给某个任务,只要运行程序提取访问网络申请,系统会分配端口号供程序使用)。

TCP头部

image-20230719143401131

  • TCP通常使用IP作为网络层协议,TCP数据段封装在IP数据包内
    TCP由Header和Data组成。TCP最多可有60字节的头部,如果没有Options字段,正常长度为20字节。
    16位源端口号和16为目标端口号加上源IP和目的IP唯一确定一个TCP连接。
    Sequence Number32位序列号,用于标识发送端发出不同的TCP数据段的序号。接收端根据此序列号,可重组数据。
    Acknowledge Number:32位确认序列号,标识接收端收到数据段,为序列号加1。
    Heder length:4位头部长度,0101表示头部有5个4字节的数目,即20字节。
    Window:16位窗口大小表示接收端单次确认而接收到的数据大小,16位对应窗口最大值为65536字节,用于流量控制。
    16位校验和,检验TCP报文段,包括TCP头部和数据。该值由发送端计算和记录,接收端验证。

TCP建立连接的过程

image-20230719143905724

TCP面向连接,可靠的全双工传输层协议
如图所示,TCP连接建立是三次握手的过程。
首先主机发送SYN数据段(序列号seq为a),请求建立连接
服务器回复SYN数据段和ACK数据段(seq为b,ack为a+1),确认主机A的SYN报文
主机A发送ACK数据段(seq为a+1,ack为b+1)确定服务器SYN报文。

TCP传输过程

image-20230719144252959

TCP可靠传输体现在确认技术上。
重点在于确认号上。目的设备收到数据段,会向源发送确认报文,源收到后继续发送数据,如此重复。
如图所示,如果服务器收到前M+1499的字节,会以M+1499+1的序列号进行确认。如果服务器A没收到M+1500系列号的字节,服务器会再次以序列号M+1500进行确认,主机A重发数据

TCP流量控制

image-20230719144634830

  • TCP滑动窗口技术通过改变窗口大小实现流量控制,如图所示,服务器以ACK 3073响应,调整窗口大小3072,主机A改变其发送速率。

TCP关闭连接

image-20230719144832401

TCP全双工传输数据,TCP三次握手建立的是两个方向的连接,传输完毕后两个方向连接也要都关闭。关闭为四次握手。
主机A想终止连接,发送标识FIN,ACK数据段(序列号为a,确认序列号为b)。
服务器发送ACK数据段(序列号为b,确认序列号为a+1),对于主机A的FIN确认。
服务器A也要终止连接,向主机发送FIN,ACK数据段(序列号为b,确认序列号为a+1)
主机A回复了ACK数据段(序列号为a+1,确认序列号为b+1),对FIN报文的确认。
以上四次交互完成两个方向连接的关闭。

UDP

image-20230719145559266

  • UDP面向无连接,传输不可靠。应用在对可靠性要求不高,传输速度和延迟要求较高时,用UDP代替TCP。UDP没有确认技术和滑动窗口机制。

image-20230719145721916

  • UDP地址分为头部和数据区域两部分。UDP适合于实时数据传输,语言和视频通话。
  • 包含16位源端口号和16位目标端口号
  • 16位UDP长度,与TCP不同,这里指的是头部和数据的字节长度。UDP头部长度为8字节,所以最少是8
  • 16位UDP校验码,与TCP相同功能,但该字段可有可无。

UDP传输过程

image-20230719150036577

UDP传输数据包是以有序方式发送到网络,每个数据包独立在网络中被发送,也就是说先发送的数据包不一定先到,因为UDP数据包没有序号,需要应用程序提供报文到达确认,排序和流量控制等功能。通常情况下,UDP采用实时传输机制和时间戳来传输语音和视频数据。

UDP传输过程

image-20230719150253315

UDP不提供重传机制,占用资源小,处理效率高,一般处理一些时延敏感流量。如语音视频。

总结

TCP头部的确认标识位有什么作用
TCP报文头中的ACK标志位用于目的端对已收到数据的确认。目的端成功收到序列号为x的字节及之前的所有字节后,会以序列号x+1进行确认。
TCP头部中哪些标识位参与TCP三次握手
TCP的三次握手过程中,要使用SYN和ACK标志位来请求建立连接和确认建立连接。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值