概述
目录
一、物理层(Physical)
主要的设备和功能
数字信号、模拟信号
数据通信模型
信道(Channel)
二、数据链路层(Data Link)
封装成帧(framing)
透明传输
差错检验
CSMA/CD协议
Ethernet V2帧的格式
网卡
PPP协议(Point to Point Protocol)
三、网络层(Network)
网络层首部
版本(Version)
首部长度(Header Length)
区分服务(Differentiated Services Field)
总长度(Total Length)
标识(Identification)
标志(Flags)
片偏移(Fragment Offset)
生存时间(Time To Live,TTL)
首部检验和、协议
四、传输层 (Transport)
UDP协议
UDP - 数据格式
UDP - 检验和(Checksum)
UDP - 端口(Port)
TCP协议
TCP - 数据格式
数据偏移
保留位(Reserved)
标志位(Flags)
检验和(Checksum)
序号(Sequence Number)
确认号(Acknowledgment Number)
窗口(Window)
TCP要点
五、应用层(Application)
常见协议
域名(Domain Name)
顶级域名的分类
二级域名
DNS(Domain Name System)- 域名系统
IP地址的分配
DHCP(Dynamic Host Configuration Protocol)-动态主机配置协议
DHCP - 分配IP地址的4个阶段
DHCP - 4个阶段
DHCP - 细节
网络互联模型
请求过程
网络分层
一、物理层(Physical)
- 物理层定义了接口标准、线缆标准、传输速率、传输方式等 ,媒体包括架空明线、平衡电缆、光纤、无线信道等等,以及确保原始的数据可在各种物理媒体上传输,传输单位是比特
-
主要的设备和功能
- 网卡:唯一的网卡硬件地址,不能更
- 中继器:放大信号,延长数据传输距离
- 集线器:多端口中继器,为多台终端放大信号
-
数字信号、模拟信号
- 模拟信号(Analog Signal)
- 连续的信号,适合长距离传输
- 抗干扰能力差,受到干扰时波形变形很难纠正
- 数字信号(Digital Signal)
- 离散的信号,不适合长距离传输
- 抗干扰能力强,受到干扰时波形失真可以修复
- 模拟信号(Analog Signal)
-
数据通信模型
- 局域网通信模型
- 广域网通信模型
- 局域网通信模型
-
信道(Channel)
- 信道:信息传输的通道,一条传输介质上(比如网线)上可以有多条信道
- 单工通信
- 信号只能往一个方向传输,任何时候都不能改变信号的传输方向
- 比如:无线电广播、有线电视广播
- 半双工通信
- 信号可以双向传输,但必须是交替进行,同一时间只能往一个方向传输
- 比如:对讲机
- 全双工通信
- 信号可以同时双向传输
- 比如:手机(打电话,听说同时进行)
- 单工通信
- 信道:信息传输的通道,一条传输介质上(比如网线)上可以有多条信道
二、数据链路层(Data Link)
- 链路:从1个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点
- 数据链路:在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输
- 不用类型的数据链路,所用的通信协议可能是不同的(传输单位是帧)
- 广播信道:CSMA/CD协议(如果同轴电缆、集线器等组成的网络)
- 点对点信道:PPP协议(比如2个路由器之间的信道)
- 数据链路层的3个基本问题
- 封装成帧、透明传输、差错检验
-
封装成帧(framing)
- 最大传输单元MTU(Maximum Transfer Unit)
- 每一种数据链路层协议都规定了所能够传送的帧的数据长度上限
- 以太网的MTU(帧的数据部分,不包括帧首部和尾部)为1500个字节
- 在一段数据的前后分别添加首部和尾部后构成一个帧,首部和尾部的一个重要作用帧定界
-
透明传输
- 一个完整的帧只有一个帧开始符(SOH)和一个帧结束符(EOT),如果数据部分出现了SOH、EOT则需要进行转义,数据部分出现一个SOH、EOT、ESC则在它们前面加上ESC进行字节填充,当接受端的数据链路层收到该帧,如遇见头部ESC就去掉ESC
-
差错检验
- 在传输过程中可能会产生比特差错:1可能会变成0,0也可能变成1
- 在数据链路层传送的帧中,广泛使用了循环冗余检验CRC的检错技术,在发送数据后面添加冗余码(帧检测序列FCS)
- FCS是根据数据部分+数据链路层首部计算得出来的
- 假设要发送的数据M=101001(长度K=6),在发送数据的时候在后面添加一个N位的冗余码,一共发送(K+N)位数据
- FCS是根据数据部分+数据链路层首部计算得出来的
-
CSMA/CD协议
- 载波侦听多路访问(侦听道上是否有信息进行传递)/冲突检测
- 使用CSMACD的网络可以称为是以太网(Ethernet),它传输的是以太网帧
- 以太网帧的格式有:Ethernet V2标准(用得多)、IEEE的802.3标准
- 为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少要64字节
- 用交换机组件的网络,已经支持全双工通信,不需要再使用CSMA/CD,传输的帧依然是以太网帧
-
Ethernet V2帧的格式
- Ethernet V2帧的格式是没有帧开始符和帧结束符的,而是接收端接收帧过程之遥发现没有信号跳变,就认为帧结束
- 首部:源MAC + 目标MAC + 网络类型(IPv4或IPv6)
- 以太网帧:首部 + 数据 + FCS
- 数据的长度至少是:64 - 6 - 6 - 2 - 4 = 46字节
- 当数据部分的长度小于46字节时,数据链路层会在数据后面填充字节,接收端会将添加的字节去掉。
- 以太网帧的数据长度:46~1500字节
- 以太网帧的长度为:64~1518字节(源MAC(6)+目标MAC(6)+网络类型(2)+数据 + FCS(4))
-
网卡
- 网卡接受到帧,会进行差错校验,如果通过则接受,去掉FCS然后传输给网络层,否则丢弃
-
PPP协议(Point to Point Protocol)
- Addresss字段:图中的值时0xFF,形同虚设,点到点信道不需要源MAC、目标MAC地址
- Control字段:图中的值时0x03,目前没有什么作用
- Protocol字段:内部用到的协议类型
- 帧开始符、帧结束符:0x7E
三、网络层(Network)
- 网络层数据包(IP数据包,Packet)由首部、数据2部分组成
- 数据:很多时候是由传输层传递下来的数据段(Segment)
-
网络层首部
-
版本(Version)
- 占4位,0b0100:IPv4、0b0110:IPv6
-
首部长度(Header Length)
- 占4位,二进制*4才是最终长度
- 0b0101:5*4=20(最小) 、 0b1111:15*4=60(最大),固定20字节+可变40字节
-
区分服务(Differentiated Services Field)
- 占8位,可以用于提高网络的服务质量(Qos)
-
总长度(Total Length)
- 占16位,首部 + 数据部分的长度之和。最大值是65535
-
标识(Identification)
- 占16位,数据包的ID,当数据包过大进行分片时,统一数据包所有片标识都是一样的
- 有一个计算器专门管理数据包的ID,每发出一个数据包,ID就加1
-
标志(Flags)
- 占3位,第1位(Reserved Bit):保留
- 第2位(Don't Fragment):1代表不允许分片,0代表允许分片
- 第3位(More Fragments):1代表不是最后一片,0代表最后一片
-
片偏移(Fragment Offset)
- 占13位,片偏移*8=字节偏移,每片长度一定是8的整数倍
- 占13位,片偏移*8=字节偏移,每片长度一定是8的整数倍
-
生存时间(Time To Live,TTL)
- 占8位
- 每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器回返回错误报告
- 用ping命令后的TTL,能够推测出对方的操作系统、中间经过了多少个路由器
-
首部检验和、协议
-
四、传输层 (Transport)
- 传输层的数据长度 = 网络层的总长度 - 网络层的首部长度 - 传输层的首部长度
- 传输层有2个协议
- TCP(Transmission Control Protocol),传输控制协议
- UDP(User Datagram Protocol),用户数据报协议
-
UDP协议
-
UDP - 数据格式
- UDP是无连接的,减少了建立和释放连接的开销
- UDP尽极大能力交付,不保证可靠交付
- 不需要维护一些复杂的参数,首部只有8个字节(TCP的首部至少20个字节)
- UDP长度:占16位,首部的长度(8字节) + 数据的长度
-
UDP - 检验和(Checksum)
- 检验和的计算内容:伪首部(12字节) + 首部(8字节) + 数据
- 伪首部:仅在计算检验和时起作用,并不会传递给网络层
-
UDP - 端口(Port)
- UDP首部中端口是占用2字节,取值范围:0~65535
- 客户端的源端口是临时开启的随机端口
- 防火墙可以设置开启关闭某些端口来提高安全性
- 常用命令行
- netstat -an:查看被占用的端口
- netstat -anb:查看被占用的端口、占用端口的应用程序
- telnet主机端口:查看是否可以访问主机的某个端口
-
TCP协议
-
TCP - 数据格式
-
数据偏移
- 占4位,取值范围:0x0101~0x1111
- 数据偏移 * 4 = 首部长度(Header Length) 【包括选项(长度可变)和填充部分】
-
保留位(Reserved)
- 占6位,目前全为0
-
标志位(Flags)
- 占6位(URG、ACK、PSH、RST、SYN、FIN)
- URG=1:紧急指针字段才有效,表明当前报文段中有紧急数据,应优先传送
- ACK=1:确认号字段才有效
- PSH=1:通知缓冲区,数据进入缓冲区,只要数据完整的接受完后立即交付给上层应用
- RST=1:表明连接总出现严重差错,必须释放连接,然后再重新建立连接
- SYN=1、ACK=0:表明这是一个建立连接的请求
- 若对方同意连接,则回复SYN=1、ACK=1
- FIN=1:表明数据已经发送完毕,要求释放连接
- 占6位(URG、ACK、PSH、RST、SYN、FIN)
-
检验和(Checksum)
- 伪首部+首部+数据,伪首部占用12字节,仅在计算检验和时起作用,不会传递给网络层
-
序号(Sequence Number)
- 占4字节,在传输过程的每一个字节都会有一个编号
- 在建立连接后,序号代表:这一次传递对方的TCP数据部分的第一个字节的编号
- 占4字节,在传输过程的每一个字节都会有一个编号
-
确认号(Acknowledgment Number)
- 占4字节,确认号代表:期望对方下一次传过来的TCP数据部分的第一个字节的编号
-
窗口(Window)
- 占2字节,字段有流量控制功能,用告知对方下一次允许发送的数据大小(字节为单位)
-
TCP要点
- 可靠传输、流量控制、拥塞控制、连接管理、建立连接、释放连接
-
五、应用层(Application)
-
常见协议
- 超文本传输:HTTP、HTTPS
- 文件传输:FTP
- 电子邮件:SMTP、POP3、IMAP
- 动态主机配置:DHCP
- 域名系统:DNS
-
域名(Domain Name)
- IP地址不方便记忆,并且不能表达组织的名称和性质,人们设计出域名(如baidu.com)
- 为了能够访问到具体的主机,最终还是得知道目标主机的IP地址
- 域名申请注册:https://wanwang.aliyun.com
- 全程直接用域名,不用IP地址也不行
- IP地址固定4个字节,域名至少10几个字节,回增加路由器的负担,浪费流量
- 根据级别不同,域名可以分为:顶级域名、二级域名、三级域名等
- IP地址不方便记忆,并且不能表达组织的名称和性质,人们设计出域名(如baidu.com)
-
顶级域名的分类
- 通用顶级域名(gTLD)
- .com(公司)、.net(网络机构)、.org(组织机构)、.edu(教育)、.gov(部门)等
- 国家及地区顶级域名(ccTLD)
- .cn(中国)、.jp(日本)、.uk(英国)
- 新通用顶级域名(New gTLD)
- .vip、.xyz、.top、.clud、.shop等
- 通用顶级域名(gTLD)
-
二级域名
- 指顶级域名之下的域名
- 在通用顶级域名下,一般指域名注册人的名称,如:google、baidu、microsoft等
- 在国家及地区顶级域名下,一般指注册类别,如:com、edu、gov、net等
- 指顶级域名之下的域名
-
DNS(Domain Name System)- 域名系统
- 利用DNS协议,可以将域名(baidu.com)解析成对应的IP地址(如:220.181.38.148)
- DNS可以基于UDP协议,也可以基于TCP协议,服务器占用53端口
- DNS - 服务器
- 客户端先访问最近的一台DNS服务器(客户端自己配置的DNS服务器)
- 所有的DNS服务器都记录了DNS根域名服务器的IP地址
- 上级DNS服务器记录了下一级DNS服务器的IP地址
- 全球一共13台IPv4的DNS根域名服务器、25台IPv6的DNS根域名服务器
- DNS - 常见命令
- ip config /displaydns:查看DNS缓存记录
- ip config /flushdns:清空DNS缓存记录
- ping 域名
- nslookup:域名
-
IP地址的分配
- IP地址按照分配方式,可以分为:静态IP地址、动态IP地址
- 静态IP地址
- 手动设置
- 适用场景:不怎么挪动的台式机(比如学校机房中的台式机)、服务器等
- 动态IP地址
- 从DHCP服务器自动获取IP地址
- 适用场景:移动设备、无线设备等
- 静态IP地址
- IP地址按照分配方式,可以分为:静态IP地址、动态IP地址
-
DHCP(Dynamic Host Configuration Protocol)-动态主机配置协议
- DHCP协议基于UDP协议,客户端是68端口,服务器是67端口
- DHCP服务器会从IP地址池中,挑选一个IP地址“出租”给客户端一段时间,过期回收
- 平时家里上网等路由器就可以充当DHCP服务器
-
DHCP - 分配IP地址的4个阶段
- DISCOVER:发现服务器
- 发广播包(源IP是0.0.0.0,目标IP是255.255.255.255,目标MAC是FF:FF:FF:FF:FF:FF)
- OFFER:提供租约
- 服务器返回可以租用的IP地址,以及租用期限、子网掩码、网关、DNS等信息
- 可能会有多个服务器提供租约
- REQUEST:选择IP地址
- 客户端选择一个OFFER,发送广播包进行回应
- ACKNOWLEDGE:确认
- 被选中的服务器发送ACK数据包给客户端,至此,IP地址分配完毕
- DISCOVER:发现服务器
-
DHCP - 4个阶段
-
DHCP - 细节
- DHCP服务器可以跨网段分配IP地址吗?(DHCP服务器、客户端不在同一个网段)
- 可以借助DHCP中继代理(DHCP Relay Agent)实现跨网段分配IP地址
- 自动续约
- 客户端会在租期不足的时候,自动向DHCP服务器发送REQUEST信息申请续约
- 常用命令
- ipconfig /all:可以看到DHCP相关的详细信息,比如租约过期时间、DHCP服务器地址等
- ipconfig /release:释放租约
- ipconfig /renew:重新申请IP地址、申请续约(延长租期)
- DHCP服务器可以跨网段分配IP地址吗?(DHCP服务器、客户端不在同一个网段)
最后
以上就是怕黑蜜蜂为你收集整理的网络五层协议目录一、物理层(Physical)二、数据链路层(Data Link)三、网络层(Network)四、传输层 (Transport)五、应用层(Application)的全部内容,希望文章能够帮你解决网络五层协议目录一、物理层(Physical)二、数据链路层(Data Link)三、网络层(Network)四、传输层 (Transport)五、应用层(Application)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复