传输层01

传输层


Created with Raphaël 2.1.0 传输层以上 传输层,添加传输报头,分段应用数据,形成报文段(必要时还需切分分段),达到按应用程序要求控制通信 网络层 物理层

传输层使用TCP和UDP两种协议

协议用途比较
TCP(IP报头内部协议编号6)用于邮件、文件的发送以及Web浏览器等追求可靠性的应用程序可靠性高,处理负荷大,即时性慢
UDP(IP报头内部协议编号17)用于语言通话(VoIP),多目通信视频发布、名称解析、DHCP等追求即时性的应用程序可靠性低,处理负荷小,即时性快
  • UDP报头组成,共8字节
名称长度用途
源端口16位
目的端口16位
报头长度16位
校验和16位
  • TCP报头组成,不包括选项与填充,共20字节
名称长度用途
源端口16位识别应用程序。端口号分三种:1. 0~1023,系统端口,由ICANN中IANA管理,用于服务器应用程序;2. 1024~49151,用户端口,由ICANN中IANA管理,用于生产商特有的应用程序;3. 49152~65535,动态和/或私有端口,在客户端随机分配
目的端口16位识别应用程序
序列号32位排列数据发送顺序,注意,序列号共4G,用完之后即归零。
ACK号32位
数据偏移量4位
保留区域6位
控制位6位有6个标志,1. URG,表示紧急的标志;2.ACK,表示确认响应的标志;3. PSH,将数据交给应用程序的标志;4. RST,强制断开连接的标志; 5. SYN,表示释放连接的标识; 6. FIN,表示结束连接的标识
窗口大小16位
校验和16位
紧急指针16位
选项头有MSS(Maximum Segment Size,最大报文段长度),三次握手将MSS植入选项头中,当双方节点的MSS值不一样时,取小的那一方使用。

TCP原理

  1. 三次握手
Created with Raphaël 2.1.0 客户端 客户端 服务器端 服务器端 SYN(客户端随机序列号X) SYN_SEND SYN+ACK(服务器端随机序列号y) SYN_RCVD ACK(x+1,y+1,各节点发送数据的初始序列号) ESTABLISHED ESTABLISHED
  1. 四次挥手
Created with Raphaël 2.1.0 客户端 客户端 服务器端 服务器端 FIN(我要关闭了) ACK(我知道了,你稍等下) FIN(我已经关闭了) 关闭 ACK(我要确保是否关闭了) 计时等待,过了2MSL后关闭

节点收到FIN标识后会等待一段TIME-WAIT时间,超过该时间之后才关闭。这是为了避免重复使用同一序列号和端口,相当上了一道保险

TCP高效的机制

介绍其中三个核心部分

名称用途
确认机制通过序列号和ACK相互运作来保证数据的可靠性,ACK好表示接收信息的节点当前已经收到了多少数据,它会返回一个“序列号+数据长度”的数值。
超时重传也用到序列号和ACK,服务器等待时间叫作RTO(Retransmission Time out,重传超时),RTO是根据报文段的往返时间RTT(Roud Trip Time,往返延迟时间)自动计算出来的。
流量控制机制用于提高传输效率,控制批量接收报文段,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值