主机在应用层上的操作:
TCP/IP协议上tcp的端口对应的各种应用程序,客户机要访问某个应用程序就会要求打开主机的这个固定的端口。而客户机自己会打开一个大于1024的随机端口用来跟对方的主机进行通信。用户使用应用程序编辑信息,一个单一的会话,实际上就是一个主机应用层之间的逻辑的软件连接。
主机在传输层的操作:
对数据分段(Segment),添加TCP报头(包含源端口,目的端口,顺序号等)。
分段的原因:
(A):可同时多个应用程序发送数据。
(B):数据包过大产生错误时,还需重新传送,即占带快又占时间,小数据包对数据流影响就小很多。
(C):各种网络传输介质有其最大的传输单元限制,不允许在网络上出现巨大的数据包。
主机在网络层的操作:
当传输层为数据分段添加了TCP头之后,将数据下发给网络层处理。网络层会为传输层传来的数据包添加IP报头(包含源IP地址,目的IP地址)封装成数据包。
主机在数链路层的操作:
数据链路层在数据包的前面封装上数据帧头,在数据包的后面封装上校验位,从而把数据包封装成数据帧。(添加源MAC地址和目的MAC地址,如果主机不知道目标MAC地址则想交换机发送ARP广播从而得到目标MAC地址)。
主机对物理层的操作:
将从逻辑链路层发送过来数据帧转换成能在物理线路上传输的电子信号,传递给网络上的转发设备交换机,由交换机进行处理。
数据封装:
发送端,封装流程:
1.用户信息被转换为数据,以便通过网络进行传输;(上三层)
2.数据被转换为数据段,发送主机和接收主机之间建立一条可靠的连接(TCP三次握手);(传输层)
3.数据段被转换为分组或数据包,逻辑地址被添加在报头中,以便能够在互联网中进行路由分组;(网络层)
4.分组或数据报被转换为帧,以便在本地网络中传输,数据链路层每1次用1比特的方式把帧传递给物理层;(数据链路层)
5.物理层接收到后根据比特定时规则将数据编码成电信号,通过物理层介质传输出去。(物理层)
封装过程:数据->数据分段->数据报->数据帧->比特。
对应OSI层:应用层->传输层->网络层->数据链路层->物理层
解封装和封装流程相反,是最终呈现给用户看的过程。封装是给网络看的。
交换机对数据帧的处理:
交换机接收到数据流后根据发送过来的数据帧的MAC地址查找目的主机,将数据发送给目的主机。转发过程不改变数据帧结构。
目的主机接收到数据帧的操作:
当目的主机接收到数据帧后对比目的MAC,如是发送给自己的,则拆去数据帧头,发往网络层,网络层对比目的IP,如相同则拆包发往传输层,传输层再对比目的端口,确认相同则拆去数据段交给应用程进行数据组装。
首先主机A与主机B要实现相互通信,主机A在应用层产生数据交互给表示层;表示层进行封装,传输给会话层;会话层进行管理、分区应用,因为运用不同的程序有不同的session建立和终止应用程序之间的会话,通过会话层的处理将数据交互给传输层;传输层会选择使用什么样的协议,例如TCP,TCP需要三次握手,那么数据会先放入缓存,建立连接时的第一次握手,将数据交互给网络层;网络层则会打上目的IP与源IP在报头上,用来确定数据发送至目的地,同时会把数据交互给数据链路层;数据链路层会宣告网关以获得目的网关地址,把MAC打在报头上,交互给物理层,以bit的形式传输;物理层查看发送的目的地址,然后再一次封装。,但是源MAC将改为R1的MAC,目的MAC将改为R2G0/1的MAC,到达R2时重复R1的过程,在到达主机B时进行二次握手,到达主机B后,是由主机A与主机B的传输,模式与上相仿,而后进行三次握手,主机A与主机B开始传输数据。