HTTP协议

TCP/IP协议族

TCP/IP协议族是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。该协议家族的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。这个协议族由互联网工程任务组负责维护。TCP/IP 协议族是Internet最基本的协议,HTTP协议是它的一个子集。TCP/IP协议族按层次分为以下5层

 

1、物理层(实体层)

底下第一层。通过光缆、电缆、双绞线、无线电波等物理手段将电脑连接起来。这一层规定了网络的一些电器特性,负责传送0和1的电信号。

 

2、数据链路层(链接层)

单纯的0和1没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号位有何意义?

这就是链路层的功能,它在实体层的上方,确定了0和1的分组方式

以太网规定,一组电信号构成一个数据包,叫作“帧”(frame)。每一帧分成两个部分:标头(head)和数据(data)。

标头包含发送者和接受者的信息。以太网规定,连入网络的所有设备,都必须具有“网卡”。数据包必须从一块网卡传送到另一块网卡。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。

广播

同一个子网络下,1电脑要给2电脑发送数据包,同一个子网络下的3、4、5电脑也会收到该数据包,2、3、4、5电脑读取数据包的标头(head),看看接收方的MAC地址是否与自己匹配。匹配就接收这个包,做进一步处理,不匹配则丢弃这个包。这种发送方式叫作“广播”。

有了数据包、MAC地址、广播的发送方式,“链路层”就可以在多台电脑间传送数据了。

总结简述:以太网规定一组电信号为一个数据包,MAC地址为标识一广播的方式在同一子网络下发送数据

 

3、网络层

链路层说到,一个子网络内以广播的方式以MAC地址为标识发送数据包。互联网是由无数个子网络组成的矩形网络,同一个子网络用广播的方式发送数据,而不同网络则采用“路由”的方式

问题来了,MAC地址是无法辨别是否同一网络下的,于是“网络层”出现后,每台计算机有了两种地址,一种是MAC地址(网卡),一种是网络地址(管理员分配的)。

IP协议

规定网络地址的协议,叫作IP协议,它所定义的地址就被称为IP地址。

IP地址由32个二进制组成,我们一般用分成四段的十进制数表示,从 0.0.0.0 到 255.255.255.255(IPV4)。

一个IP地址分成两个部分,前一段代表网络,后一段代表主机,但不确定前一段和后一段的分割点(需要子网掩码)。

处于同一子网络下的计算机,它们IP地址的网络部分必定是相同的。假如网络部分是钱24位(二进制),那么172.16.254.2 和 172.16.254.1是处于同一子网络下。

子网掩码

上面说到,一个IP地址我们无法知道前几位是网络部分,所以就有了子网掩码。

子网掩码表示IP地址的特征,也是一个32位二进制数字(与IP地址一一对应),网络部分全部为1,主机部分全部为0。

比如IP地址172.16.254.1的子网掩码是255.255.255.0(二进制11111111.11111111.11111111.00000000),那么这个IP地址的网络部分就是前24位(172.16.254)。

IP数据包

根据IP协议发送的数据,叫作IP数据包,其中包含IP地址信息。

IP数据包也分为head、data两部分,IP数据包放进以太网数据包后,以太网数据包就变成下面这样

总结简述:在链路层的基础上多了个IP地址,子网掩码用于识别IP地址的网络部分(辨别是否同一子网络下)

 

4、传输层

有了MAC地址和IP地址,我们可以在互联网上任意两台主机建立通信。

但有个问题是,主机接收到数据包,但不知道这个数据包是给哪个程序(进程)使用,所以这时有个参数叫端口(port)。

端口其实是每一个使用网卡的程序的编号,每个数据包发送的主机的指定端口,该端口程序就取得自己所需的数据。

端口是0~65535之间的一个整数,0~1023的端口被系统占用。

 

UDP协议

UDP数据包也是由head、data组成。head部分定义了发出端口和接收端口。把UDP数据包放入IP数据包后,以太网数据包就变成下面这样

 

TCP协议

UDP协议的优点是比较简单,容易实现,但缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。

TCP协议可以理解为有确认机制的UDP协议。每发出一个数据包都要求确认,如果数据包丢失,收不到确认,发出方有必要重发这个数据包。

TCP协议能够确保数据不会丢失,但缺点是过程比较复杂,实现困难,消耗较多资源。

 

总结简述:网络层是建立在主机到主机的通信,而传输层是建立端口到端口的通信,数据接收的精准度来到了程序

 

5、应用层

应用程序收到传输层的数据,接下来要进行数据解读。

应用层的作用就是规定应用程序间通信的数据格式(http协议就在应用层)。

应用层的数据就放在传输层TCP数据包的data部分,所以现在以太网的数据包变成下面这样

参考文章

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值