网络层次
应用层 — HTTP协议
传输控制层 — TCP/UDP协议 -> Socket封装
网络层 — IP协议、ICMP协议
IP协议
IP协议处于网络层,用于更底层(数据链路层)与上层传输控制层(TCP/UDP)之间传输数据。通过解析或指定目的地址的IP,来确定一条网络计算机中的链路。
简单来说,就是通过IP来确定一台网络上的电脑,确立一条网络路径。
协议头:
- 版本:占4位,指IP协议的版本。
- 首部长度:占4位,可表示的最大十进制数值是15。
- 区分服务:占8位,用来获得更好的服务。
- 总长度:总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
- 标识(identification):占16位。
- 标志(flag):占3位,但目前只有2位有意义。
- 片偏移:占13位。
- 生存时间:占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。
- 协议:占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
- 首部检验和:占16位。
- 源IP地址:占32位。
- 目的IP地址:占32位。
主要包含:IMCP协议(ping)、IP协议(TCP/IP协议组)
TCP协议
TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据无重复到达)传输层协议。
协议头(20字节):
- 源端口号[2字节]
- 目的端口号[2字节]
- SEQ序号[4字节]
- ACK序号[4字节]
- 偏移[0.5字节]
- Reserved [0.5字节]
- 标志[1字节]
- 窗口大小(window)[2字节]
- 校验和[2字节]
- 紧急指针[2字节]
主要涉及技术:三次握手链接、四次挥手关闭链接、TCP可靠性的保证(带重传功能的肯定确认)、滑动窗口技术
UDP协议
UDP协议也是传输层协议,它是无连接,不保证可靠的传输层协议。
协议头(8字节):
- 源端口号[2字节]
- 目的端口号[2字节]
- Length[2字节]
- 校验和[2字节]
TCP/IP协议
传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
通过层次结构中可以看到,TCP/IP协议涉及到网络层和传输控制层,可以说是网络传输的基础。设备连接入网络,比如手机设备,就是实现了底层TCP协议后才可以在网络上进行传输。
TCP、UDP和TCP/IP协议的小结
TCP
提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。TCP通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送。
TCP对应的是可靠性要求高的应用,支持的应用协议主要有:Telnet、FTP、SMTP等
UDP
UDP则不为IP提供可靠性、流控或差错恢复功能
UDP对应的则是可靠性要求低、传输经济的应用,支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等
TCP和UDP区别:
- 基于连接与无连接;
- 对系统资源的要求(TCP较多,UDP少);
- UDP程序结构较简单;
- 流模式与数据报模式 ;
- TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
TCP/IP协议和UDP协议的关系
TCP/IP是协议族,由TCP和IP协议构成,TCP负责发现问题,请求重传,IP负责确立链路链接。
UDP是不可靠传输,也可以说是UDP/IP协议族,可是一般情况下意义不大,比较传输层都是会经过网络层的。