目录
应用和数据
数据
- 在计算机领域,数据是各种信息的载体
- 大部分应用程序所产生的数据需要在不同的设备之间传递
- 计算机只能识别 0 和 1 组成的电子数据(digital data),它不具备读取各种信息的能力,所以信息需要通过一定的规则翻译成数据
网络参考模型与标准协议
osi参考模型和 TCP/IP 对等模型
osi 参考模型
层级 | 功能 |
---|---|
应用层 | 对应用程序提供接口,为应用程序提供网络服务 |
表示层 | 进行数据格式转换/编解码,确保一个系统生成的应用层数据能够被另外一个系统的应用层识别和理解 |
会话层 | 在通信双方之间建立、管理和终止会话,该层的通信由不同设备中的应用程序之间服务请求和响应组成 |
传输层 | 建立、维护和取消一次端到端的数据传输过程,控制传输快慢、调整数据排序、对重传前的差错检测等 |
网络层 | 定义逻辑地址,供路由器确定路径,实现数据从源到目的地的转发 |
数据链路层 | 将分组数据封装成帧(比特组合成字节,字节组合成帧),在数据链路上实现数据的点到点、点到多点方式的直接通信,使用数据链路层地址(以太网使用 MAC 地址)来访问介质,并进行差错检测 |
物理层 | 在媒介上传输比特流,提供机械和电气的规约,规定了电平、速度和电缆针脚等物理特性 |
osi 参考模型和 TCP/IP 对等模型对比
osi | TCP/IP |
---|---|
应用层/表示层/会话层 | 应用层 |
传输层 | 传输层 |
网络层 | 网络层 |
数据链路层 | 数据链路层 |
物理层 | 物理层 |
- TCP/IP 模型在结构上与 OSI 模型类似,采用分层架构,同时曾与层之间联系紧密
TCP/IP 常见协议
- TCP/IP 每一层都让数据得以通过网络进行传输,这些层之间使用 PDU(Protocol Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信
- 不同层的 PDU 中包含有不同的信息,因此 PDU 在不同层被赋予了不同的名称(数据/段/包/帧)
层级 | 协议 |
---|---|
应用层 | Telnet、FTP、HTTP、SMTP,TFTP、SNMP、DNS、DHCP |
传输层 | TPC、UDP |
网络层 | ICMP、IGMP、IP |
数据链路层 | PPPoE、Ethernet、PPP |
物理层 | 。。。 |
应用层协议
- 应用层为应用软件提供接口,使应用程序能够使用网络服务,应用层协议会指定使用相应的传输协议以及传输层所使用的端口等
- 应用层的 PDU 被称为 Data(数据)
- HTTP(Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上的页面,用户在 HTTP 客户端放松访问请求,HTTP 服务器返回 HTML 文件
- 端口号:80
- 基于 TCP
- Telnet:远程登录协议,提供远程管理服务,用户可以通过 Telnet 客户端程序连接到 Telnet 服务器(如 AP、Router、SW、Firewall、Server),用户在 Telnet 客户端中输入命令,这些命令会在服务器端运行,就像直接在服务端的控制台上输入,不如 SSH 安全
- 端口号:23
- 基于 TCP
- FTP(File Transfer Protocol,文本传输协议):为文件传输提供了途径,允许数据从一台主机传送到另一台主机上,提供互联网文件资源共享服务,用于文件的上传和下载,多采用 C/S(Clint/Server)结构
- 端口号:20、21
- 基于 TCP
- SMTP(Simple Mail Transfer Protocol,简单邮件传输协议):提供互联网电子邮件服务
- 端口号:25
- 基于 TCP
- TFTP(Trivial File Transfer Protocol,简单文件传输协议):提供简单的文件传输服务
- 端口号:69
- 基于 UDP
- DNS(Domain Name Service,域名解析服务):用于实现从主机域名到 IP 地址之间的转换
传输层协议
- 传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立端到端(Port to Port)的连接
- 传输层的 PDU 被称为 Segment(段)
- TCP(Transmission Control Protocol,传输控制协议):为应用程序提供可靠的面向连接的、可靠的通信服务,面向字节流
- UDP(User Datagram Protocol,用户数据报协议):提供了简单、无连接通信,且不对传送数据包进行可靠性的保证,面向数据报
TCP 和 UDP 报文格式
- TCP 报文头部:
- Source Port:源端口,标识哪个应用程序发送,长度为 16 比特
- Destination Port:目的端口,标识哪个应用程序接收,长度为 16 比特
- Sequence Number:序号字段,TCP 链接中传输的数据流每个字节都编上一个序号,序号字段的值指的是本报文字段所发送数据的第一个字节的序号,长度为 32 比特
- Acknowledgement Number:确认序号,是期望收到对方下一个报文段数据的第一个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加一,只有 ACK 标识为 1,此字段有效,长度为 32 比特
- Header Length:头部长度,支出 TCP 报文头部长度,以 32 比特(4字节)为计算单位,若无选项内容,则该字段为 5,即头部为 20 字节
- Reserved:保留,必须填 0,长度为 6 比特
- Control bits:控制位,包含 FIN、ACK、SYN 等标志位,代表不同状态下的 TCP 数据段。URG-紧急指针标志位,为1表示有效,为0表示忽略;ACK-确认序号标志,为1表示有效,为0表示忽略;PSH-Push标志位,指示接收方接收到带有Push标志的数据时,应尽快将报文段交给应用程序;RST-重置连接标志位,为1时表示tcp连接出现错误,需要释放连接,然后重新建立传输连接;SYN-建立连接请求标志位,为1时表示是一个连接请求或连接接收报文;FIN-释放连接标志位,为1时表示发送方已经没有数据发送了,应释放连接
- Window:窗口 TCP 的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位),窗口最大为 65535 字节,长度为 16 比特
- Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验证,在计算校验和时,要包括 TCP 头部和 TCP 数据,同时在 TCP 报文段的前面加上 12 字节的伪头部,长度为 16 比特
- Urgent:紧急指针,只有当 URG 标志至 1 时紧急指针才有效,TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式,紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面),长度为 16 比特
- Options:选项字段(可选),长度为 0-40 字节
字段 | 长度 | 含义 |
---|---|---|
Source Port | 16比特 | 源端口,标识哪个应用程序发送。 |
Destination Port | 16比特 | 目的端口,标识哪个应用程序接收。 |
Sequence Number | 32比特 | 序号字段。TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。 |
Acknowledgment Number | 32比特 | 确认号,是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。 |
Data Offset | 4比特 | 数据偏移,即首部长度,指出TCP报文段的数据起始处距离TCP报文段的起始处有多远,以32比特(4字节)为计算单位。最多有60字节的首部,若无选项字段,正常为20字节。 |
Reserved | 6比特 | 保留,必须填0。 |
URG | 1比特 | 紧急指针有效标识。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。 |
ACK | 1比特 | 确认序号有效标识。只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。 |
PSH | 1比特 | 标识接收方应该尽快将这个报文段交给应用层。接收到PSH = 1的TCP报文段,应尽快的交付接收应用进程,而不再等待整个缓存都填满了后再向上交付。 |
RST | 1比特 | 重建连接标识。当RST=1时,表明TCP连接中出现严重错误(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立连接。 |
SYN | 1比特 | 同步序号标识,用来发起一个连接。SYN=1表示这是一个连接请求或连接接受请求。 |
FIN | 1比特 | 发端完成发送任务标识。用来释放一个连接。FIN=1表明此报文段的发送端的数据已经发送完毕,并要求释放连接。 |
Window | 16比特 | 窗口:TCP的流量控制,窗口起始于确认序号字段指明的值,这个值是接收端正期望接收的字节数。窗口最大为65535字节。 |
Checksum | 16比特 | 校验字段,包括TCP首部和TCP数据,是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。 |
Urgent Pointer | 16比特 | 紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。 |
Options | 可变 | 选项字段。TCP协议最初只规定了一种选项,即最长报文段长度(数据字段加上TCP首部),又称为MSS。MSS告诉对方TCP“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节”。新的RFC规定有以下几种选型:选项表结束,无操作,最大报文段长度,窗口扩大因子,时间戳。窗口扩大因子:3字节,其中一个字节表示偏移值S。新的窗口值等于TCP首部中的窗口位数增大到(16+S),相当于把窗口值向左移动S位后获得实际的窗口大小。时间戳:10字节,其中最主要的字段是时间戳值(4字节)和时间戳回送应答字段(4字节)。选项确认选项: |
Padding | 可变 | 填充字段,用来补位,使整个首部长度是4字节的整数倍。 |
data | 可变 | TCP负载。 |
-
UDP 报文头部
- Source Port:源端口,标识哪个应用程序发送,长度为 16 比特
- Destination Port:目的端口,标识哪个应用程序接收,长度为 16 比特
- Length:该字段制定 UDP 报头和数据总共占用的长度,长度为 16 比特,Length 可能的最小值是 8 字节,因为 UDP 报头已经占用了 8 字节,由于这个字段的存在,UDP 总长不可能超过 65535(216=65536) 字节(包括 8 字节的报头和 65527 字节的数据)
- Checksum:覆盖 UDP 头部和 UDP 数据的校验和,长度为 16 比特,使用二进制反码求和算法,检测UDP用户数据报在传输过程中是否有错,出错则丢弃
-
UDP 校验流程:
- 发送端:(1) 把数据包的校验和字段置为0;(2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和;(3)把得到的结果存入到校验和字段中
- 接收端:(1)把首部看成以16位为单位的数字组成,依次进行反码求和,包括校验和字段;(2)检查计算出的检验和的结果是否等于0(反码应该为16个0);(3)如果等于0,说明被整除,校验和正确。否则校验和就是错误的,并将该数据报丢弃
-
UDP 缺点及解决办法:
1、不保证安全有序到达:需要在应用层使用tcp所使用的一些机制实现
2、不保证有序到达:需要在应用层进行包序管理
3、udp报文有最大长度限制:报文最大长度小于64k,因此发送大块数据的时候,需要在应用层进行数据分包进行发送
4、udp实现的是整条交付:因此接收方必须定义的缓冲区足够大,能够一次性取出一条数据
————————————————版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_44443986/article/details/115949921
- 客户端使用的源单口一般随机分配,目标端口则由服务器的应用指定
- 源端口号一般为系统中未使用的,且大于 1023
- 目的端口号为服务端开启的应用(服务)所侦听的端口,如 HTTP 缺省使用 80
TCP 的建立和关闭
-
TCP 的建立:三次握手
-
SYN(Synchronize Sequence Numbers,同步序列编号):是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递
-
ACK(acknowledge):确认,Ack=对方发送的Seq+1,Seq=起始Seq+1
-
TCP 连接建立的详细过程如下:
- 由 TCP 连接发起方(PC1)发送第一个 SYN 位置 1 的 TCP 报文,初始序列号 a 为一个随机生成的数字,因为没收到过来自 PC2 的任何报文,所以确认序列号为 0
- 接收方(PC2)接收到合法的 SYN 报文后,回复一个 SYN 和 ACK 置 1 的 TCP 报文,初始序列号 b 为一个随机生成的数字,同时因为此报文是回复给 PC1 的报文,所以确认序列号为 a+1
- PC1 接收到 PC2 发送的 SYN 和 ACK 置位的 TCP 报文后,回复一个 ACK 置位的报文,此时序列号为 a+1,确认序列号为 b+1,PC2 收到之后,TCP 双向连接建立
- 假设 PC1 要给 PC2 发送一段数据,传输过程如下:
- PC1 将全部待 TCP 发送的数据按照字节为单位编上号,假设第一个字节的编号为 a+1,第二个字节的编号为 a+2,以此类推
- PC1 会把每一段数据的第一个字节的编号作为序列号(Sequence number),然后将 TCP 报文发送出去
- PC2 在收到 PC1 发送来的 TCP 报文后,需要给予确认同时请求下一段数据,如何确定下一段数据呢?序列号(a+1)+载荷长度=下一段数据的第一个字节的序号(a+1+12)
- PC1 在收到 PC2 发送的 TCP 报文之后,发现确认序号为 a+1+12,说明 a+1 到 a+12 这一段的数据已经被接受,需要从 a+1+12 开始发送
- 为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认
- 在 TCP 三次握手建立连接时,双方都会通过 Window 字段告诉对方本端最大能够接受的字节数(也就是缓冲区的大小)
- 连接建立成功后,发送方会根据接收方宣告的 Window 大小发送相应字节数的数据
- 接收方接收到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据,若数据被上层取走,则相应的缓冲空间将被释放
- 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小(Window)
- 发送方根据接收方当前的 Window 大小发送相应数量的数据
- TCP 的四次挥手
- FIN(finish):结束连接
- TCP 支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输,在传输数据之前,TCP 通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭
- 由 PC1 发出一个 FIN 字段置 1 的不带数据的 TCP 段
- PC2 收到 PC1 发来的 FIN 置位的 TCP 报文后,会回复一个 ACK 置位的 TCP 报文
- 若 PC2 也没有需要发送的数据,则直接发送 FIN 置位的 TCP 报文,假设此时 PC2 还有数据要发送,那么当 PC2 发送完这些数据之后会发送一个 FIN 置位的 TCP 报文去关闭连接
- PC1 收到 FIN 置位的 TCP 报文,回复 ACK 报文,TCP 双向连接断开
网络层协议
- 传输层负责建立主机之间进程与进程的连接,而网络层(也叫 Internet 层)则负责数据从一台主机到另一台主机的传递
- 网络层的 PDU 被称为 Packet(包)
- 网络层作用:为网络中的设备提供逻辑地址,负责数据包的寻径和转发,常见协议如 IPv4(Internet Protocol Version 4),IPv6(Internet Protocol Version 6),ICMP,IGMP 等
- IP(Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务
- IGMP(Internet Group Management Protocol,因特网组管理协议):负责 IP 组播成员管理的协议,用来在 IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系
- ICMP(Internet Control Message Protocol,网际报文控制协议):基于 IP 协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,是管理者可以对所发生的问题做出诊断,然后采取适当的措施解决,ping 和 tracert 都属于 ICMP
- 当采用 IP 作为网络层协议时,通信的双方都会被分配到一个独一无二的 IP 地址来标识自己,IP 地址可被写成 32 位的二进制整数值形式,但为了方便人们阅读和分析,通常被携程点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如 192.168.1.1
- IP 数据包的封装与转发
- 网络层收到上层(如传输层)协议传来的数据时,会封装一个 IP 报文头部,并且把源和目的 IP 地址都添加到该头部中
- 中间经过的网络设备(如路由器)会维护一张指导 IP 报文转发的地图—路由表,通过读取 IP 数据包的目的地址,查找本地路由表后转发 IP 数据包
- IP 数据包最终到达目的主机,目的主机通过读取目的 IP 地址确定是否接受并做下一步处理
- IP 协议工作时,需要如 OSPF、IS-IS、BGP 等各种路由协议帮助路由器建立路由表,ICMP 帮忙进行网络的控制和状态诊断
数据链路层协议
- 数据链路层位于网络层和物理层之间,可以向网络层的 IP、IPv6 等协议提供服务
- 数据链路层的 PDU 被称为 Frame(帧)
- 以太网(Ethernet)时最常见的数据链路层协议
- 数据链路层作用:
- 向网络层提供段内通信
- 负责组帧、物理编址、差错控制等功能
- 常见的数据链路层协议有:以太网、PPPoE、PPP 等
- PPP(Point-to-Point Protocol,点对点协议):一种点对点模式的数据链路层协议,多用于广域网,不需要 MAC 地址,只有两个终端,PPP 可以做认证,拨号上网
- Ethernet(以太网协议):一种多路访问广播型数据链路层协议,是当前应用最为广泛的局域网技术
- PPPoE(Point-to-Point Protocol over Ethernet,以太网承载 PPP 协议):PPPoE 提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能,常应用于家庭宽带拨号上网
- 以太网是一种广播式数据链路层协议,支持多点接入
- 个人电脑的网络接口遵循的就是以太网标准
- 一般情况下,一个广播域对应着一个 IP 网段
- MAC(Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要且有唯一的一个 MAC 地址
- MAC 用于一个 IP 网段内,寻址找到具体的物理设备
- 工作在数据链路层的设备,如以太网交换机,会维护一张 MAC 地址表,用于指导数据帧转发
- MAC 地址有由48 比特(6 个字节,每个字节 4 比特),12 个 16 进制数字组成,例如:48-A4-72-1C-8F-4F
ARP
- ARP(Address Resolution Protocol):地址解析协议,根据一致的 IP 地址解析获取其对应的 MAC 地址
- ARP 是 IPv4 中必不可少的一种协议,主要功能:
- 将 IP 地址解析为 MAC 地址
- 维护 IP 地址与 MAC 地址的映射关系的缓存,即 ARP 表项
- 实现网段内重复 IP 地址的检测
- 网络设备一般都有一个 ARP 缓存(ARP Cache),ARP 缓存用来存放 IP 地址和 MAC 地址的关联信息
- 在发送数据前,设备会先查找 ARP 缓存表,如果缓存表中存在对方设备的 ARP 表项,则直接采用该表项中的 MAC 地址来封装帧,然后将帧发送出去;如果缓存表中不存在相应信息,则通过发送 ARP Request 报文来获得它
- 学习到的 IP 地址和 MAC 地址的映射关系会被放入 ARP 缓存表中存放一段时间,在有效期内(缺省:180s),设备可以直接从这个表中查找目的 MAC 地址来进行数据封装,而无需进行 ARP 查询,过了这段有效期,ARP 表项会被自动删除
- 如果目标设备位于其他网络,则源设备会在 ARP 缓存表中查找网关的 MAC 地址,然后将数据发送给网关,最后网关再把数据转发给目的设备
- 主机 1 的 ARP 缓存表中不存在主机 2 的 MAC 地址,所以主机 1 会发送 ARP Request 来获取目的 MAC 地址
- ARP Request 报文封装在以太帧里,帧头中的源 MAC 地址为发送端主机 1 的 MAC 地址,此时,由于主机 1 不知道主机 2 的 MAC 地址,所以目的 MAC 地址为广播地址 FF-FF-FF-FF-FF-FF
- ARP Request 报文中包含发送端 MAC 地址、发送端 IP 地址、目的端 MAC 地址、目的端 IP 地址,其中目的端 MAC 地址的值为 0,ARP Request 报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此 ARP Request 报文
- 所有的主机接收到该 ARP Request 报文后,都会检查它的目的端 IP 地址字段与自身的 IP 地址是否匹配,如果不匹配,则该主机将不会响应该 ARP Request 报文;如果匹配,则该主机会将 ARP 请求报文中的发送端 MAC 地址和发送端 IP 地址信息记录到自己的 ARP 缓存表中,然后通过 ARP Reply 报文进行响应
- 主机 2 会向主机 1 回应 ARP Reply 报文
- ARP Reply 报文中的发送端 IP 地址是主机 2 自己的 IP 地址,目的端 IP 地址是主机 1 的 IP 地址,目的端 MAC 地址是主机 1 的 MAC 地址,发送端 MAC 地址是自己的 MAC 地址,同时操作类型被设置为 Reply
- ARP Reply 报文通过单播传送
- 主机 1 收到 ARP Reply 后,会检查 ARP 报文中目的端 IP 地址字段与自身的 IP 地址是否匹配,如果匹配,ARP 报文中的发送端 MAC 地址和发送端 IP 地址会被记录到主机 1 的 ARP 缓存表中
物理层
- 数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号
- 物理层的 PDU 被称为比特流(Bitstream)
- 物理层位于模型的最底层,负责比特流在介质上的传输,规范了线缆、针脚、电压、接口等物理特性规范,常见的传输介质有双绞线、光纤、电磁波等
- 双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为:
- STP-屏蔽双绞线
- UTP-非屏蔽双绞线
- 光纤传输,按照功能部件可分为:
- 光纤:光传输介质,简单说就是一根玻璃纤维,用于约束光传输的通道
- 光模块:将电信号与光信号互转的器件,产生光信号
- 串口电缆在 WAN(Wide Area Network,广域网)中大规模使用,根据 WAN 线路类型不同,串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM 接口、POS 接口、CE1/PRI 接口等
- 无线信号的传输可以通过电磁波进行,如:无线路由器将数据通过调制以电磁波发送出去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据传输
数据通信过程
- 发送方数据封装
- 假设正在通过网页浏览器访问网页,当输入完网址,敲下回车后,计算机内部会发生下列事情:
- 浏览器(应用程序)调用 HTTP(应用层协议),完成应用层数据的封装(图中 DATA 还应包括 HTTP 头部,此处省略)
- HTTP 依靠传输层的 TCP 进行数据的可靠性传输,将封装好的数据传递到 TCP 模块
- TCP 模块给应用层传递下来的 Data 添加上相应的 TCP 头部信息(源端口、目的端口等),此时的 PDU 被称作 Segment(段)
- 在 IPv4 网络中,TCP 模块会将封装好的 Segment 传递给网络层的 IPv4 模块(若在 IPv6 环境,会交给 IPv6 模块进行处理)
- IPv4 模块在收到 TCP 模块传递来的 Segment 之后,完成 IPv4 头部的封装,此时的 PDU 被称为 Packet(包)
- 由于使用了 Ethernet 作为数据链路层协议,故在 IPv4 模块完成封装之后,会将 Packet 交由数据链路层的 Ethernet 模块(例如以太网卡)处理
- Ethernet 模块在收到 IPv4 模块传递来的 Packet 之后,添加上相应的 Ethernet 头部信息和 FCS 帧尾,此时的 PDU 被称为 Frame(帧)
- 在 Ethernet 模块封装完毕之后,会将数据传递到物理层
- 根据物理介质的不同,物理层负责将数字信号转换成电信号、光信号、电磁波(无线)信号等
- 转换完成的信号在网络中开始传递
- 一般情况下:
- 网络中的二层设备(如以太网交换机)只会接封装数据的二层头部,根据二层头部的信息进行相应的交换操作
- 网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的路由操作
- 经过中间网络传递之后,数据最终到达目的服务器,根据不同的协议头部的信息,数据将被一层层的解封装并做到相应的处理和传递,最终交由 WEB 服务器上的应用程序进行处理
练习题
- 分层模型的概念有什么好处
答案:各个层次之间分工、界限明确,有助于各个部件的开发、设计和故障排除,通过定义在模型的每一层实现什么功能,鼓励产业的标准化,通过提供接口的方式,使得各种类型的网络硬件和软件能够相互通信,提高兼容性 - 常见的应用层、传输层、网络层、数据链路层有哪些协议
答案:应用层:HTTP、FTP、Telnet 等;传输层:UDP、TCP;网络层:IP、ICMP 等;数据链路层:Ethernet、PPP、PPPoE 等 - (单选题) 数据链路层的数据我们称之为。
A.段 B.包 C.帧 D.位
答案:C
解析:各层的PDU如下:应用层为数据,传输层为段,网络层为包,数据链路层为帧,网络层为比特流 - (判断题)
数据在发送者主机上需进行解封装。
答案:错误
解析:发送端要封装,接收端解封装 - (多选题)
OSI模型和TCP/IP模型都有的层次有。
A.应用层 B.会话层 C.传输层 D.网络层
答案:ACD
解析:TCP/IP中的上三层(会话层、表示层、应用层)被合并为一层应用层 - (单选题)
不是应用层协议的有。
A.DNS B.TCP C.HTTP D.DHCP
答案:B
解析:TCP 是传输层协议 - (判断题)
主机访问HTTP应用时,源端口号随机产生,目的端口号80。
答案:正确 - (判断题)
TCP通过滑动窗口机制来控制数据的传输速率。
答案:正确 - (判断题)
大部分应用程序所产生的数据需要在不同的设备之间传递。
答案:正确 - (判断题)
计算机只能识别0、1和2的组成的电子数据(digital data)。
答案:错误
解析:计算机只能识别二进制数据,二进制只包含0和1 - (判断题)
计算机不具备读取各种信息的能力,所以信息需要通过一定的规则翻译成数据。
答案:正确 - (判断题)
而对人来说,我们不具备读取电子数据的能力,所以在读取信息的时候,需要将数据转成人能理解的信息。
答案:正确