三、TCP/IP的四层协议详解

1. TCP/IP的四层协议- 简介

 tcp/ip协议族分层之后的总体设计:每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务

 

TCP/IP协议族按照层次由上到下,层层包装:

  • (1)最上面的就是应用层了,这里面有http,ftp,等等我们熟悉的协议。
  • (2)而第二层则是传输层,著名的TCP和UDP协议就在这个层次。
  • (3)第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标。
  • (4)第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。

2. TCP/IP的四层协议- 详解

 

第 1 层:链路层(数据链路层使用物理地址寻找机器

① 定义

  •  数据链路层实现了网卡接口的网络驱动程序,处理数据在物理媒介(以太网,令牌环)上的传输。

② 作用

  • 当网络层需要使用数据链路层提供的服务时,必须把IP地址转换为物理地址,这就用到了RAP协议。
  • RARP协议仅用于网络上某些无盘工作站,因为缺乏存储设备,无盘工作站无法记住自己的IP地址,需要利用网卡上的物理地址来查询自身的IP地址

③ 协议

  • 常用协议包含ARP(地址解析协议),‘’RARP(逆地址解析协议)两个协议,他们实现了IP地址和物理地址间的相互转换

 

第 2 层:网络层(网络层使用IP地址寻找机器

① 定义

  • 实现数据包的选路和转发(处理这些流动的数据包,也就是如果把相应的数据包路由到指定的地点,为通信时的网络传输选择传输路)
  • 注意:WAN(Wide Area Network,广域网),使用多级路由器连接分散的主机或LAN(Local Area Network,局域网),两台主机一般不是直接相连的,而是通过多个中间节点(路由器)连接的。

② 作用

  • 网络层的任务就是选择这些中间节点,确定两台主机之间的通信路径。
  • 同时网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序来看,通信的双方是直接相连的

③ 协议

  • 网络层的核心协议是IP协议,根据数据包的目的IP地址来决定如何投递它。
  • (1) 如果数据包不能直接发送给目的主机,那么IP协议就为它寻找合适的下一跳路由器,并将数据包交付给路由器转发。多次重复该过程最终将数据包送达目的地址,
  • (2) 如果发送失败则被丢弃。可见IP协议使用逐跳方式确定通信路径。

第 3 层:传输层(为两台主机上的应用程序提供端到端的通信)

① 定义

  • 传输层为两台主机上的应用程序提供端到端的通信,只关心通信的起始端和目的端,不在乎数据包的中转过程。

② 作用

  • 使源端主机和目标端主机上的对等实体可以进行会话

③ 协议

  • 传输控制协议TCP(transmission control protocol)是一个面向连接的、可靠的协议。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。   

  • 用户数据报协议UDP(user datagram protocol) 是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合

第 4 层: 应用层(处理应用程序的逻辑,数据链路层、网络层和传输层负责处理网络通信细节)

① 定义

  • 决定这次通信的应用类型,通俗来讲,应用层决定这一次通信要干嘛

② 作用

  • 应用层则在用户空间实现,它负责处理众多逻辑,比如文件传输,名称查询和网络管理等

③ 协议

  •  主要协议包含Telnet,OSPF,DNS、FTP、DNS、SMTP等等,同时HTTP协议也属于应用层的范围等

 

 

3. TCP/IP的四层协议- 如何实现通信的例子

 

整体的http请求到响应的过程,一访问google做个例子:

0. 访问google.com,按下回车。

1. 应用层准备好请求报文,通过DNS服务进行域名解析,得到google的ip地址,并将报文发到传输层。

2. 传输层收到报文后,会将请求的数据包进行拆分,打包,并对每个包裹打上tag。在请求报文的基础上,加上一层TCP的首部信息,然后发往网络层。

3. 到了网络层以后,IP协议就发挥了巨大的作用,IP协议中需要两个比较重要的信息,那就是ip地址和mac地址。

  • ip已经在应用层通过dns解析出来了
  • ARP协议可以根据ip地址反向查询到目标主机的mac地址

4. ip地址和mac地址都有了,打包带走,把数据发到数据链路层。

  • 求到达服务器后,先从数据链路层往上走,并验证消去以太网首部信息,在网络层消去IP首部,在传输层消去TCP首部,请求报文。
  • 在应用层对请求做出处理之后,需要对请求返回一个响应。而整个响应的传输过程就和请求一样,一层一层的封装,响应到达客户端时再一层一层的消去首部,最后呈现响应的结果。
posted @ 2021-12-03 16:11  小丸子姐姐  阅读(2217)  评论(0编辑  收藏  举报