TCP/IP 中有两个具有代表性的协议:TCP和UDP
可以根据IP部首中的协议字段的协议号可识别IP层传输的到底是哪一种协议。
TCP提供可靠的通信传输,UDP常用于让广播和细节控制交给应用的通信传输。
UDP:不具有可靠性的数据报协议,无法保证消息一定会到达。没有复杂的控制,它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。
在网络拥堵时其无法进行流量控制等避免网络堵塞的行为,即使在丢包的情况下,UDP也不负责重发,也无纠正包顺序的功能。UDP按照“制作程序的那些用户的指令行事”
UDP本身的处理简单高效常适用于以下几个方面
- 高速传输,实时性高的通信或广播通信。
- 包总量较少的通信
- 视频,音频等多媒体通信
- 限定于LAN等特定网络中的应用通信
TCP:“传输,发送,通信” 其是面向连接的,可靠的流协议,具备顺序控制,重发控制等机制。与UDP完全不同,它充分展现了对数据传输的各种控制,可以在丢包时进行重发控制,可以对次序乱掉的分包进行顺序控制。TCP仅在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。
四次挥手断开连接源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;
序号/32位确认号
CP报头长度: 表示该TCP头部有多少个32位bit(有多少个4字节)
URG: 紧急指针是否有效
ACK: 确认号是否有效
PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走
RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段
SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段
FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段
校验和: 发送端填充, CRC校验. 接收端校验不通过, 则认为数据有问题. 此处的检验和TCP数据部分.
16位紧急指针: 标识哪部分数据是紧急数据;
40字节头部选项