数据链路层协议_TCP/IP协议简介协议层图,封装与解封装,报文数据结构

TCP/IP协议层图

3a41f5b8aab38f83f981b0bd038fa244.png

TCP/IP协议层所处位置

895fff2079bf7aab1429cd97fcd6329c.png

数据发送的过程:封装

应用层:应用程序(app)把应用层协议内容以应用层首部的形式封装成数据data,从应用层送给传输层

传输层:收到应用层的数据data,把data作为传输层的payload(有效数据),把传输层协议内容(tcp/udp,scrPort,dstPort(和目标程序的子进程绑定)等)以传输层首部transHeader的形式,添加到传输层的payload前面,封装成transHeader+data,送给网络层

网络层:收到传输层数据transportHeader+data,把transportHeader+data作为网络层的payload,把网络层协议内容(ipv4/ipv6,scrIP,dstIP,protocol(表明上层传输层的类型tcp/udp)等)以网络层首部ipHeader的形式,添加到网络层的payload前面,封装成ipHeader+transHeader+data,送给数据链路层

数据链路层:收到网络层数据ipHeader+transHeader+data,把ipHeader+transHeader+data作为数据链路层的payload,把链路层协议内容(scrMac,dstMac,type(表明上层网络层的类型arp/ipv4/ipv6)等)以链路层首部macHeader的形式,添加到链路层的payload前面,封装成macHeader+ipHeader+transHeader+data,通过网卡发到物理层上

数据接收的过程:解封装

数据链路层:网卡从物理层上接收数据macHeader+ipHeader+transHeader+data,在链路层解封装链路层首部macHeader,找到dstMac,和自己的mac地址判断是否相同,不同则丢弃,相同说明是发给自己的包,根据type通知网络层的正确的子程序(arp/ipv4/ipv6)来取链路层的payload,即ipHeader+transHeader+data

网络层:网络层子程序取到数据后,解封装网络层首部ipHeader,匹配dstIP和自己的IP地址,不同则丢弃,一致则根据protocol通知传输层的正确的子程序(tcp/udp)来取网络层的payload,即transHeader+data

传输层:传输层子程序取到数据后,解封装传输层首部transHeader,首先会计算校验和checksum,错误则丢弃,正确则根据dstPort通知绑定的子进程来取传输层的payload,即data

应用层:子进程取到数据后,交给对应的目标应用程序处理

报文数据结构

3d4879dadb03b41d5a6da96000973de5.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值