传输层学习总结
传输控制协议(TCP) ——RFC793
传输控制协议(Transmission Control Protocol,TCP)最终目的是为了数据提供可靠的端到端传输。TCP被认为是一个面向连接的协议,因为它会正式的开启和关闭通道。
TCP端口
所有TCP通信都会使用源端口和目的端口,而这些可以在每个TCP头中找到。端口就像老式电话总机上的插口(socket)。
在使用TCP进行通信的时候,我们有65535个端口可以使用。
- 1~1023是标准端口组(忽略掉被预留的0),特定服务会用到这些通常位于标准分组中的标准端口。
- 1024~65535是临时端口组,一个服务想在任何时间使用端口进行通信的时候,通常会使用临时端口组的端口。
TCP的三次握手
主机A SYN-> 主机B (序列号3691127924)
<-SYN/ACK (序列号233779340)(确认号3691127924+1)
ACK-> (序列号3691127924+1)(确认号233779340+1)
TCP的四次挥手
主机A 主机B
FIN/ACK ->
<- ACK
<- FIN/ACK
ACK ->
用户数据报协议(UDP) ——RFC 768
UDP(User Datagram Protocol,UDP)主要是为了提供高速的传输。出于这个原因,UDP是一种尽力服务,通常会被称为无连接协议,不会像TCP那样存在握手和终止过程。
UDP流量一点都不稳定。正因如此,依赖于UDP的协议通常都会有其自己的内置的可靠服务,或者使用ICMP的一些功能,来保证连接更靠一些。如DNS,DHCP。