type
status
date
slug
summary
tags
category
icon
password

TCP/IP协议族

TCP/IP协议族是目前主流使用的协议族,它包含众多协议,后面将会简单介绍比较重要的几个协议。想要系统的学习网络协议看一查看RFC(Request For Comments)文档。
TCP/IP协议族是一个四层协议系统,每一层完成不同功能,通过若干种协议来实现,下层协议为上层协议提供服务。
notion image

数据链路层

这一层是网卡接口的网络驱动程序,为上层提供统一的接口。这一层常用ARP(Address Resolve Protocol,地址解析协议)和(Reverse Address Resolve Protocol,逆地址解析协议)。它们主要实现IP地址和机器物理地址的相互转换。
网络层通过IP地址寻址机器,数据链路层通过物理地址寻址机器,ARP可以将IP地址转化成物理地址。RARP是网络上的无盘工作站,它并不记录IP地址,但是可以通过网卡的物理地址向服务器或者网络软件查询IP地址。运行RARP服务的硬件上会存储该网络上机器的物理地址到IP地址的映射。

网络层

网络层负责数据包的转发。WAN(Wide Area Network,广域网)通常使用众多分级的路由器连接分散的主机和LAN(Local Area Network,局域网)。两台主机可以靠它们通过很多中间节点进行连接。网络层的任务就是通过选择这些中间节点来确定它们之间的通信路径。
IP协议(Internet Protocol, 因特网协议)根据数据包的目的IP地址来选择将它转发到哪里,如果不能直接转发到目的IP地址,那么就寻找合适的下一个路由器让它进行转发直到数据到达目标主机。
ICMP(Internet Control Message Protocol,因特网控制报文协议)协议补充了IP协议,用于检测网络连接。
notion image
前8位类型用来确定报文类型,ICMP报文一般分为两大类,一类是差错报文,用于回应网络错误。比如不可达(3)和重定向(5);一类是查询报文,通常用来查询网络信息,比如ping程序查询目标是否可达(8)。有的报文通过8位代码进一步细分不同条件。ICMP报文通过16位校验和字段对整个报文进行循环冗余校验(Cyclic Redundancy Check, CRC),来检验它是否损坏。

传输层

传输层为两台主机提供端到端的通信,它只关心起始段和目的端,并不在乎数据包的中转过程。下图中实现代表实线通信线路,虚线代表逻辑通信线路。
notion image
TCP协议(Transmission Control Protocol,传输控制协议)为应用层提供可靠的,面向连接的,基于流(stream)服务。通过超时重传和数据缺人的方式来确保数据包被发送到目的端。
UDP协议(User Datagram Protocol,用户数据报协议)和TCP协议完全相反,它为应用层提供不可靠、无连接和基于数据包的服务。
SCTP协议(Stream Control Transmission Protocol,流控制传输协议)是一种新的传输层协议,为了在因特网传输电话信号而设计。

应用层

应用层负责处理应用程序的逻辑。前三层负责网络通信细节,必须保证稳定和高效,都在内核空间实现,应用层则在用户空间实现,它负责文件传输等众多逻辑。
ping是应用程序不是协议,利用ICMP报文来检测网络连接,调试网络环境。
telnet协议是远程登陆协议,让我们在本地完成远程任务。
OSPF(Open Shortest Path First,开放最短路径优先)协议是动态路由更新协议,用于路由器间的通信。
DNS(Domain Name Service, 域名服务)协议提供机器域名到IP地址的转换

封装

通过封装,上层协议可以使用下层协议的服务。数据从应用程序到物理网络之前,没经过一层协议,该层协议都会在上层传来的数据的头部加上自己的信息来实现该层功能
notion image
在数据链路层不仅会封装头部还会封装尾部。经过它封装的数据成为帧,它的数据结构是这样的。这也是数据封装完成后的结果。
notion image

分用

帧到达目的主机的时候沿着协议栈从下往上传递,每层根据头部数据交给上层对应的协议直到交给对应的目标哦应用程序。
notion image

ARP协议

arp协议负责将网络层地址转换到物理地址。它的工作原理是主机向所在的网络广播一个arp请求,请求中包含目标机器的网络地址,该网络的其他机器都会收到请求,只有被请求的机器会回答这个arp请求,并在回答中包含自己的物理地址。

arp报文

notion image

DNS协议

通常通过机器的域名来访问机器,DNS协议就负责将机器域名转换成IP地址。

DNS报文

DNS是一套分布式的域名服务系统,每个DNS服务器上都存放着大量的机器名和IP地址映射,并且会动态更新。DNS报文格式
notion image
标识字段用于标记一对DNS查询和应答来区分一个DNS回答是哪个DNS查询的回应。
标志字段用于协商具体的通信方式和反馈通信状态
notion image
对于查询报文来说,一般包含1个查询问题,应答、授权和额外信息为0。应答报文的应答资源记录数至少为1,授权和额外信息可以是0。
查询问题的格式
notion image
应答、授权和额外信息字段的资源记录格式如下
notion image
 
[UE源码阅读]入口点和用户交互[OpenGL]批量渲染Batch Rendering
Loading...