一种互联网的实现方式分为5层:实体层,链接层,网络层,传输层,应用层。
一、实体层:是把电脑连接起来的物理手段。
二、连接层:在"实体层"的上方,确定了0和1的分组方式
1、以太网(Ethernet)协议,电信号分组方式。以太网规定,一组电信号构成一个数据包,叫做"帧"(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。
2、"标头"包含数据包的一些说明项,比如发送者、接受者、数据类型等等;
3、"数据"则是数据包的具体内容。
4、以太网规定,连入网络的所有设备,都必须具有"网卡"接口。数据包必须是从一块网卡,传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
三、网络层:作用是引进一套新的地址,区分不同的计算机是否属于同一个子网络,建立"主机到主机"的通信。这套地址就叫做"网络地址",简称"网址"。
"网络层"出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。
1、规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。
2、IP协议的作用:为每一台计算机分配IP地址,确定哪些地址在同一个子网络。这个地址分成两个部分,前一部分代表网络,后一部分代表主机
3、子网掩码:表示子网络特征的一个参数。在形式上等同于IP地址,是一个32位二进制数字,网络部分全部为1,主机部分全部为0。用于判断两台计算机是否属于同一个子网络。
4、IP数据包:根据IP协议发送的数据。包括IP地址信息。IP数据包直接放进以太网数据包的"数据"部分。IP数据包分为"标头"和"数据"。
5:、端口:是0到65535之间的一个整数,16个二进制位。0到1023的端口由系统占用,用户选用大于1023的端口。浏览网页或是在线聊天时,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
四、传输层:功能是建立"端口到端口"的通信。网络层的功能是建立"主机到主机"的通信。实现程序之间的交流需要确定主机和端口。因此,Unix系统就把主机+端口,叫做"套接字"(socket)。
1、在数据包中加入端口信息,需要新的协议。最简单的实现叫做UDP协议,它的格式是在数据前面,加上端口号。UDP数据包,由"标头"和"数据"两部分组成。
"标头"部分主要定义了发出端口和接收端口,"数据"部分就是具体的内容。UDP数据包存放在IP数据包的"数据"部分,IP数据包放在以太网数据包之中。
2、UDP协议的优点是简单,容易实现,缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。
3、TCP协议解决可靠性的问题,提高网络可靠性。TCP协议每发出一个数据包都要求确认。
4、TCP协议能够确保数据不会遗失。缺点是过程复杂、实现困难、消耗较多资源。
五、应用层的作用是规定应用程序的数据格式。
MAC地址有局限性,如果两台电脑不在同一个子网络,就无法知道对方的MAC地址,必须通过网关(gateway)转发。由DNS协议将网址转换成IP地址
1、IP 协议是地址协议,不保证数据包的完整。需要依靠 TCP 协议发现路由器是否丢包并重新发送。保证数据通信的完整性和可靠性,防止丢包。
2、HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
因为 HTTP/2 的数据包是不按顺序发送的,同一个连接里面连续的数据包,可能属于不同的回应。因此,必须要对数据包做标记,指出它属于哪个回应。
参考:
1、HTTP:http://www.ruanyifeng.com/blog/2016/08/http.html
2、互联网协议入门一:http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
3、互联网协议入门二:http://www.ruanyifeng.com/blog/2012/06/internet_protocol_suite_part_ii.html
4、TCP协议简介:http://www.ruanyifeng.com/blog/2017/06/tcp-protocol.html
5、URL:https://jingyan.baidu.com/article/2c8c281df0afd00008252aa7.html
网友评论