网络编程(一)网络协议模型以及序列化过程

关于TCP和UDP的五层模型:

1.物理层

        硬件层面上的约定,例如网线,网口...以太网数据帧是二进制数据,硬件设备接受的是光电信号,所以就需要物理层辅助转换数据包的内容(物理层负责把数据链路层的数据包转换成光电信号,再进行传输)

2.数据链路层

作用:两个设备之间进行传递数据——即端对端进行传输

        经典协议,以太网(以太网是一种技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络的拓扑结构,访问控制方式,传输速率等)

以太网帧格式:

        数据链路层会在拿到ip数据包之后再进一步封装,添加一个以太网数据帧帧头和帧尾,作为一个以太网数据帧

理解MAC地址:

源地址和目的地址指的是网卡的硬件地址(MAC地址),通常是在网卡出厂的时候就固化的,地址长度为48位

认知MAC地址——用来识别链路层中相连的节点,一般用16进制数字+冒号表示,一共六个节点

(对比MAC地址和IP地址):

MAC地址记录的是从起点到终点每一个节点的区间,IP地址只负责记录起点和终点这一个总体没有细化到每一个区间

理解ARP协议:

ARP协议是帧协议的一种,帧协议另外还有RARP、IP,三种协议对应的数据包长度不同

ARP协议的作用:建立了MAC地址和IP地址的映射关系

ARP工作流程: 

        当两台主机要进行通信,源主机要从目的主机那获取MAC地址,此时源主机就要向目的主机发送一个ARP请求包(包中有目的主机的IP地址),目的主机接受到请求包后进行校验,确认请求包中的IP地址与自己一致之后,向源主机发送一个ARP响应包(记录了目的主机的MAC地址),之后源主机接收ARP响应包获得MAC地址,完成两台主机的通信

理解MTU(最大传输单元):

MTU在数据链路层中的作用是——对过大的数据包进行分包,对于字节过大的数据包会进行分片,在以太网协议中,传输单元最大为1500字节,最小为46字节,不同协议的传输单元不同!

3.网络层

作用:在复杂的网络环境中确定一个合适的路径

经典协议:ip协议  

了解网段划分方法

        IP地址分为两个部分:网络号和主机号。

        网络号:保证相互连接的两个网段具有不同的标识

        主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号

4.传输层

作用:负责数据能够从发送端传输到接收端

经典协议:TCP和UDP

5.应用层

作用:满足日常需求的网络程序

应用层中有对应的网络协议,将正文按照对应的协议组织成对应的数据(作为载荷)

理解DNS原理和工作原理:

        应用层在拿到应用数据包之后,按照应用的协议格式进行解析,拿到结构化数据然后显示到界面上

在TCP和UDP协议中,由“源ip“ ”源端口号“ ”目的ip“ ” 目的端口号“   ”“协议号”组成一个五元组来标识一个通信(协议号就是指双方都遵循的网络协议)


TCP/UDP五层协议传输数据的过程:

举一个实例:A给B发微信信息

1.应用层

信息作为消息正文,微信在应用层中有对应的协议,将消息正文组装成数据包

2.传输层

传输层会提供API给应用程序去调用,通过调用API把数据包交给传输层,传输层在拿到数据包之后通过对应的协议去添加一个报头,再组成一个数据包

3.网络层

网络层在拿到传输层封装好的数据包后,添加一个IP报头,然后交给数据链路层 

4.数据链路层

 

5.物理层

 以上就是A发信息的整个过程,不过要注意,发送出去不是直接由B接收,而是由交换机(路由器)先接收然后再从交换机(路由器)发送到B由B接收


B接收到从交换机发送来的信号后:

1.物理层

将接收到的光信号/电信号/电磁波转化为二进制数据,然后交给数据链路层

2.数据链路层:

接受到物理层转化的二进制数据后,根据相对应的以太网协议进行数据解析(解析之后把帧头和帧尾去掉形成载荷)

解析出来的载荷要交给上层(网络层)

 3.网络层

网络层接收到载荷,根据IP协议获取IP数据包后进行解析,去掉报头进一步形成载荷然后传给上层(传输层)

4.传输层

传输层 根据UDP协议拿到UDP数据包,进行解析后将载荷传给应用层

5.应用层

到了应用层,微信程序根据协议将拿到数据包,解析数据包获取结构化数据, 然后显示到界面上


上述A发送信息的过程——将结构化数据转化成二进制字符串/字符串这一过程称为序列化,B接受x信息——将二进制字符串/字符串转化为结构化数据的过程称为反序列化!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值