tcp/ip 协议族 是一个四层协议系统。自下到上一次为:
数据链路层(ARP 地址解析协议, RARP 逆地址解析协议),
就是物理地址(MAC 地址)
网络层(IP 因特网协议, ICMP 因特网控制报文协议)--严格说ICMP并非网络层协议,因为他使用同一层IP协议提供的服务,正常都是上层协议使用下层协议提供的服务。
两台主机通过IP地址通信,中间会经历“多跳”,也就是当不能直接通信时,会通过不同的路由器进行跳转。
ICMP 通过32位报文检测网络的链接状态,对IP协议进行补充。 8位类型(区分报文类型 差错报文 或者查询报文),8位代码(进一步区分不同的细节)。16位校验和字段对整个报文(包括头部和内容部分)进行冗余循环效验,已检验报文在传输过程中是否有所毁坏
网络层(TCP 传输控制协议/UDP 用户数据报协议/SCTP流控制传输协议)
TCP 可靠的,面向连接的和基于流的服务,超时重传,数据确认方式保证传输的正确性,传输前必须建立连接,并在内核中为改连接维持一些必要的的数据结构。连接状态、读写缓存区、定时器等。传输时逐字节写入,逐字节读取。
UDP 不可靠,无连接的和基于数据包的服务。每个数据包都有一个长度,接收端必须以该长度为最小单位一次性读出,负责数据将会被截断。
应用层(DNS 域名服务/ telnet远程登录协议)
封装:数据 加上层级协议头部信息
到链路层称为帧,传输媒介的不同称为不同的帧,以太网-以太网帧,令牌环网络-令牌环帧
IP 无状态 无连接 不可靠
无状态:通信双发不同步传输数据的状态信息。无法确定报文的顺序
以太帧 是1500个字节。但是IP头部字节有20个字节 ICMP头部8字节,非最后一个分片,IP头部需携带MF标志
TCP 交互流数据
交互数据:包含很少的字节,交互数据实时性要求高。比如telnet/ssh
成块数据:长度通常为TCP报文允许的最大长度,对传输效率要求高,比如 ftp
网络层协议具有带外数据的概念,带外数据的优先级比普通数据高