传输层协议有:
TCP: 传输控制协议
UDP: 用户数据报协议
TCP协议介绍
是面向连接的、全双工的、可靠的进程到进程通信的协议
TCP报文格式
报文内部介绍
源端口号:发送方进程对应的端口号
目标端口号:接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用程序的进程
序号:当TCP从进程接收数据字节时,就把它们存储在发送缓存中,并对每一个字节进行编号
编号不一定从0开始,一般会产生一个随机数作为第1个字节的编号,称为初始序号(ISN)
TCP每个方向的编号是互相独立的
当字节都被编上号后,TCP就给每个报文段指派一个序号,序号就是该报文段中第一个字节的编号。
当数据到达目的地后,接收端会按照这个序号把数据重新排列,保证数据的正确性
确认号:是对发送端的确认信息,用它来告诉发送端这个序号之前的数据段都已经收到,如确认号是X,就是表示前X-1个数据段都已经收到
首部长度:用它可以确定首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节
保留:这部分保留位作为今后扩展功能用
控制位:这六位有很重要的作用,TCP的连接传输和断开都受这六个控制位的指挥
例如SYN:同步序号位,TCP需要建立连接时将这个值设为1
窗口值:说明本地可接收数据段的数目,这个值的大小是可变的,当网络通畅时将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值可保证网络数据的可靠传输,TCP协议中的流量控制机制就是依靠变化窗口的大小实现的
校验和:用来做差错控制,TCP校验和的计算包括TCP首部、数据和其他填充字节。在发送TCP数据段时,由发送端计算校验和,当到达目的地时又进行一次校验和计算。若这两次的校验和一致,则说明数据基本是正确的,否则将认为该数据已被破坏,接收端将丢弃该数据
紧急指针:和URG配合使用
选项:TCP首部可以有多达40字节的可选信息
TCP建立连接的过程称为三次握手
TCP断开连接的四次挥手
TCP常用端口及功能
UDP协议
缺点: 无连接、不可靠的传输协议
优点: 花费的开销小
UDP报文的首部格式
UDP长度:用来指出UDP的总长度,为首部加上数据
校验和:用来完成对UDP数据的差错检验,它是UDP协议提供的唯一的可靠机制
UDP常用的端口及功能