网络协议在如今地位不可撼动,找工作面试也是常问的一些问题,以前用wireshark抓包分析过,但是没有系统地学习,今天做一下记录。
TCP/IP协议簇常用四层协议系统,自下而上是数据链路层、网络层、传输层和应用层。
应用层:ping telnet DNS
传输层:TCP UDP
网络层:ICMP IP
数据链路层: ARP Data Link
数据链路层:
实现网卡接口的网络驱动程序,常用的协议有ARP 和 RARP 协议,以实现IP地址和机器物理地址之间的转换。
网络层使用IP地址寻找设备,数据链路层使用物理地址寻址设备,所以网络层必须先将目标机器的IP地址转化成物理地址,才能使用数据链路层提供服务,这就是ARP协议的用途。
网络层:
实现数据包的选路和转发。核心协议是IP协议,IP协议根据数据报的目的IP地址来决定如何传递,如果数据不能直达,则经过多级路由转发。
另一个重要协议是ICMP,主要用于检测网络连接,略去不表。
传输层:
传输层为两台主机提供端到端的通信,主要有TCP协议、UDP协议
TCP协议为应用层提供可靠的、面向连接的和基于流的服务,基于流的数据没有长度限制,可以逐字节地发送和读取;
UDP协议为应用层提供不可靠、无连接和基于数据报的服务,每个UDP数据报都有一个长度,接收端必须以该长度为最小单位将所有内容一次性读出,否则数据将被截断。
应用层:
数据链路层、网络层、和传输层都在内核中实现,而应用层则在用户空间实现
应用层协议比较多,比如ping telnet 等等。
封装:
封装就是每层协议都将上一层的数据加上自己的头部信息,
TCP数据段:比如经TCP封装后的数据成为TCP报文段,TCP协议为通信双方建立一个连接,并在内核中存储相关数据结构。
UDP数据报:经过UDP封装后的数据成为UDP数据报,UDP无须为应用层保存数据副本,因为它提供的是不可靠的服务。
IP数据报:经IP封装后的数据就是IP数据报;
帧:经过数据链路他封装的数据成为帧;帧最大的传输单元 称作MTU,以太网帧的MTU是1500字节。所以过程的IP数据需要被分片传输。
分用:当帧到达目的主机时,将沿着协议栈自底向上传输,个层协议一次处理帧中本层负责的头部数据,最后将处理后的帧交给目标应用程序,就是分用。