应用层
DNS: 域名系统(Domain Name System),就是通过向专门的域名服务器讯来问域名对应的IP地址的系统;
DHCP: 动态主机配置协议(Dynamic Host Configuration),用于将一台计算机加入新的网络和获取IP地址而不用手动参与;
传输层
tcp属于面向连接的,所以需要有三次握手来达成连接;(这握手是和对端TCP进行握手,那必然会经过本端的网络层)
网络层
与IP协议配套使用的还有3个协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
地址解析协议 ARP:
ARP协议用于在已经知道了一个机器(主机或路由器)的IP地址后,去找出其相应的硬件地址(即Mac地址)。这个是IP层报文,由IP层发起;
网际控制报文协议 ICMP:
在网络层使用ICMP来允许主机或路由器报告差错情况和提供有关异常情况的报告。这个也是由IP层发起;
路由表:
转发:
链路层
物理层
DA 、SA、T和DATA还是链路层的数据;
端侧设备
具备物理层:得到报文的PRE字段和进行FCS域段计算;
具备链路层:得到本端MAC地址、获得对端Mac地址、得到要发送的IP报类型、IP报数据;
网络层:
路由器
路由器:需实现AS内部和外部路由;(AS:autonomous system,自洽系统,是指在单一技术管理下的一组路由器,而这些路由器使用一种自洽系统内部的路由选择协议和共同的度量)
RIP:Routing Information Protocol,路由信息协议,为内部网关协议,使用UDP数据报进行传送;
OSPF:Open Shortest Path First,开发最短路径优先协议,也为内部网关协议,但原理不同,使用IP数据报进行传送;
BGP:Border Gateway Protocol,边界网关协议,为外部网关协议,是运行于 TCP 上的一种自治系统的路由协议,是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。需要建立TCP连接,基于TCP报文的;《BGP介绍》
通信完整过程
此处以用电脑访问网站为例来说明整个通信过程;
应用层:
一个端侧(如一台电路)连入网络插入路由器后,会自动分配IP地址和子网掩码,这个是用到了DHCP协议;
然后此时在浏览器中输入网址点击确认后,会对输入的URL进行解析生成http包;
此时并不知道要将这个报发给什么地方,就需要通过DNS系统来得知输入的网址对应的IP地址;
传输层:
此时在传输层,通过TCP协议将http报文包进TCP包中,然后给到下层网络层;当然再真正将http报文带着给到下层时,需要TCP已经通过三次握手建立了连接;
在http报文前面加上TCP头部,变成TCP报,如下图所示:
网络层:
网络层拿到TCP报后,在TCP报前面加上IP header如IP地址等后变成IP包,会将这个IP包给到链路层;于此同时会将MAC地址给到链路层;那如果不知道目的端MAC地址时,会使用ARP协议获得MAC地址;
网络层对传输层的TCP报前面加上IP header构成IP报,如下图所示,将IP报给到链路层;
链路层:
IP层组包完成后会交给以太网的链路层,链路层会在IP数据报前面加上“目的地址、原地址、类型”,构成链路层报,如下图所示;
物理层:
物理层会将链路层包加上PRE和FCS得到物理层包,然后发送出去;
PRE:报文和起始帧分界符;
FCS:帧校验序列;
到达路由器:
对收到的包进行解析,然后根据包中的目的IP,确定转发端口,然后转发出去;
到达目的服务器:
对包层层拆解,一直送到应用层去,应用层解析完报文含义后,完成相应操作,比如这里服务器会返回网站内容,那么就会层层的打包数据,再送给最开始发起网站访问的主机;
参考资料
《计算机网络》第七版,