TCP UDP
传输控制协议(TCP,Transmission Control Protocol)
TCP:可靠传输,面向连接,速度慢,但是准确性高
用户数据报协议(UDP,User Datagram Protocol)
UDP:不可靠传输,非面向连接,速度快,但是准确性低
可靠传输:代表着是有确认的
面向连接:在正式传输数据前,先建立连接,再进行数据传输
ACK表示确认
有时候只发送一个包,有时候发送几个包,这个值由滑动窗口决定
当下载东西的时候,要求不能缺少报文,否则数据不全无法使用,所以TCP更适合
UDP只会一直发送,不会回复确认
UDP适合用于实时性要求较高的情况,比如视频会议等
三次握手:传输数据前,先要建立连接,建立连接的过程需要来回发送三次报文,这个过程称为三次握手
客户端 --> 服务端 发送数据三次握手建立
第一次握手: 客户端 ---> 服务端 发送数据包
发送TCP报文信息: 控制syn=1 请求建立连接
序列号: seq=x
第二次握手: 服务端 ---> 客户端 发送数据包
发送TCP报文信息: 控制syn=1 ack=1 请求建立连接 并对接收数据包进行确认
序列号: seq=y
确认号: ack=x+1
第三次握手: 客户端 ---> 服务端 发送数据包
发送TCP报文信息: 控制ack=1 接收数据包确认信息
序列号: seq=x+1
确认号: ack=y+1
逻辑链路建立, 可以传输数据
TCP报文封装
二层 MAC地址
三层 IP地址
四层TCP 源端口号、目标端口号
三次握手时的报文
建立连接后,开始传输数据
在HTTP请求时,最先开始发送的是TCP报文,建立连接后才发送HTTP报文
netstat -an可以查看已经建立的连接