TCP/IP协议都有哪几层协议

协议层

物理层

包括有线(网线)和无线(wifi)

电平的高低表示bit1和bit0

ethernet link up/down,指物理层是否通路,通路则ethernet status是link up,开路则link down

master和slave也是物理层的划分

数据链路层

网络消息在网络层经过不同局域网转发处理后,到达目的主机所在的局域网时,根据目的IP地址获取目标MAC地址后,数据包交由数据链路层处理,链路层根据目的MAC地址,通过交换机转发到对应的端口,发给端口另一侧的主机

MAC地址,就是网卡的物理地址

数据链路层实现同一网络内主机的通信,方式:根据MAC地址交由交换机转发

交换机,数据链路层的设备,只能处理数据链路层首部的信息,只转发不处理

网络层

如果源主机和目的主机处于不同网络中,网络消息从源主机发出后,必须在网络层,根据目的IP地址,经由不同的路由器做转发处理,实现跨网络传输

IP地址,网络层主机地址,由网络地址+主机地址组成

网络层实现不同网络间的数据传输,方式:根据目的IP地址交由路由器转发和处理

路由器,网络层设备,可以处理网络层首部的信息,可以转发可以处理,也有交换机的功能

传输层

数据在主机内需要交给对应的子进程接收处理,根据目的端口号通知对应的子进程接收

端口号,传输层概念,与子进程PID绑定

传输层实现不同进程(应用)的数据处理,方式:根据目的端口绑定的PID(进程ID),通知对应的进程接收处理

应用层

会话层,表示层,应用层,可以统称为应用层

它们都是在应用中的协议,而数据链路层,网络层和传输层是在系统中的协议


各协议层功能

TCP/IP协议都有哪几层协议_第1张图片


各协议层所处位置

TCP/IP协议都有哪几层协议_第2张图片


封装与解封装

封装

  • 应用层

应用程序(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

  • 应用层

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


报文结构

TCP/IP协议都有哪几层协议_第3张图片


数据在各协议层的叫法

TCP/IP协议都有哪几层协议_第4张图片


更多内容,请关注汽车网络诊断通信

你可能感兴趣的:(网络协议,网络协议,tcp/ip)