TCP/IP协议在OSI七层模型的基础上,将网络分为,物理层,数据链路层,网络层,传输层,应用层。每一层都有各自的职责,所以每一层上都会有一个或多个标准协议,每个协议是完成一项职责的一种方式。
局域网中数据的传输是通过广播实现的,局域网与局域网之间的传输是通过路由器实现的。路由器连接了多个局域网并广播数据。
- 在局域网内部,结点到结点—广播域
所有数据都带着物理地址(MAC地址),保证数据发到指定的节点。比如:在局域网中有A,B,C,D四方,A方想发送数据a至c,A现将数据及MAC发送至交换机,交换机广播a与MAC,BD因为MAC地址不匹配故未收到A。数据的传递如下图描述。路由器的广播域通常是多个局域网。
- 在局域网内部,应用层到应用层—封装+解包/分用
以两台设备为例,应用于应用之间的交互。在发送方,需要将数据A封装,其中每一层都需要完成自己的职责,封装完成后发送至目标。接收方,拿到封装的数据进行解包,类似于上一步说的,查看MAC地址等,解包是如何区分开首部和有效负荷,分用是具体决定数据传递给上层哪个协议/进程/业务,完成后才能拿到数据。
- 跨局域网,应用层到应用层的交互
MAC地址只能是一个局域网的地址,针对的是局域网,IP地址是网络层的地址最终的地址。在各局域网传输中,每个局域网也会发生解包等操作,计算下一个地址,并为数据指定下一次的传输地址,重新封装,发送。直到到达最终目标地址。
封装:
解包/分用:
当你输入一个网址并按下回车键的时候,首先,应用层协议对该请求包做了格式定义;紧接着传输层协议加上了双方的端口号,确认了双方通信的应用程序;然后网络协议加上了双方的IP地址,确认了双方的网络位置;最后链路层协议加上了双方的MAC地址,确认了双方的物理位置,同时将数据进行分组,形成数据帧,采用广播方式,通过传输介质发送给对方主机。而对于不同网段,该数据包首先会转发给网关路由器,经过多次转发后,最终被发送到目标主机。目标机接收到数据包后,采用对应的协议,对帧数据进行组装,然后再通过一层一层的协议进行解析,最终被应用层的协议解析并交给服务器处理。