网络参考模型
OSI参考模型
- 物理层:在媒介上传输比特流;提供机械的和电气的规约。
- 数据链路层:将分组数据封装成帧;在数据链路上实现数据的点到点、或点到
多点方式的直接通信;差错检测。 - 网络层:定义逻辑地址;实现数据从源到目的地的转发。
- 传输层:建立、维护和取消一次端到端的数据传输过程。控制传输节奏的快慢,调整数据的排序等等。
- 会话层:在通信双方之间建立、管理和终止会话。
- 表示层:进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解。
- 应用层:对应用程序提供接口。
OSI参考模型又被称为七层模型,由下至上依次为:
物理层:在设备之间传输比特流,规定了电平、速度和电缆针脚等物理特性。
数据链路层:将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用
MAC地址)来访问介质,并进行差错检测。
网络层:定义逻辑地址,供路由器确定路径,负责将数据从源网络传输到目的网络。
传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测。
会话层:负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备
中的应用程序之间的服务请求和响应组成。
表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的
数据能被另一个系统的应用层识别。
应用层:OSI参考模型中最靠近用户的一层,为应用程序提供网络服务
TCP/IP参考模型

TCP/IP常见协议

应用层
HTTP(Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上
的各种页面。
FTP(File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数
据从一台主机传送到另一台主机上。
DNS(Domain Name Service,域名称解析服务):用于实现从主机域名到IP地址之
间的转换。
传输层
TCP (Transmission Control Protocol,传输控制协议) :为应用程序提供可靠的面
向连接的通信服务。目前,许多流行的应用程序都使用TCP。
UDP(User Datagram Protocol,用户数据报协议):提供了无连接通信,且不对传
送数据包进行可靠性的保证。
网络层
IP(Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点
到目的站点的转发,提供无连接的、不可靠的服务。
IGMP(Internet Group Management Protocol,因特网组管理协议):负责IP组播
成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播
组成员关系。
ICMP(Internet Control Message Protocol,网际报文控制协议):基于IP协议在网
络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使
管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。
数据链路层
PPP(Point-to-Point Protocol,点对点协议):一种点对点模式的数据链路层协议,
多用于广域网。
Ethernet( 以太网协议 ):一种多路访问广播型数据链路层协议,是当前应用最为广
泛的局域网技术。
PPPoE(Point-to-Point Protocol over Ethernet,以太网承载PPP协议):PPPoE提
供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器
的功能。常见的应用有家庭宽带拨号上网。
应用层
应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输
层协议,以及传输层所使用的端口等。
应用层的PDU被称为Data(数据)。

TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(Packet Data Unit,
协议数据单元)彼此交换信息,确保网络设备之间能够通信。
不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。
常见应用层协议-FTP
FTP(File Transfer Protocol)是一个用于从一台主机传送文件到另一台主机的协议,用于文件的
“下载”和“上传”,它采用C/S(Client/Server)结构。
常见应用层协议-Telnet
Telnet是数据网络中提供远程登录服务的标准协议。 Telnet为用户提供了在本地计算机上完成远
程设备工作的能力。
常见应用层协议-HTTP
HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计HTTP最
初的目的是为了提供一种发布和接收HTML页面的方法。
传输层
传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”
(Port to Port)的连接。
传输层的PDU被称为Segment(段)。
传输层协议:
TCP:一种面向连接的、可靠的传输层通信协议,由IETF的RFC 793定义。
UDP:一种简单的无连接的传输层协议,由IETF的RFC 768定义。
TCP和UDP – 报文格式
TCP报文头部:
Source Port:源端口,标识哪个应用程序发送。长度为16比特。
TCP头部
20 Byte
UDP头部
8 Byte
Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。
序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1
个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有
Ack标识为1,此字段有效。长度为32比特。
Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。
若无选项内容,则该字段为5,即头部为20字节。
Reserved:保留,必须填0。长度为4比特。
Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据
段。
Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数
(以字节为单位)。窗口最大为65535字节。长度为16比特。
Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验
证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12
字节的伪头部。长度为16比特。
Urgent:紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端
向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个
字节(紧急数据放在本报文段数据的最前面)。长度为16比特。
Options:选项字段(可选),长度为0-40字节。
UDP报文头部:
Source Port:源端口,标识哪个应用程序发送。长度为16比特。
Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
Length:该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为
UDP报头已经占用了8字节。由于这个字段的存在,UDP报文总长不可能超过65535
字节(包括8字节的报头,和65527字节的数据)。
Checksum:覆盖UDP头部和UDP数据的校验和,长度为16比特。
TCP和UDP– 端口号


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双向连接建立
TCP的序列号与确认序列号
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的窗口滑动机制
TCP通过滑动窗口机制来控制数据的传输速率。
- 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字
节数(也就是缓冲区大小)。 - 连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。
- 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上
层取走,则相应的缓冲空间将被释放。 - 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小( Window )。
- 发送方根据接收方当前的Window大小发送相应数量的数据。
TCP的关闭-四次挥手
当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源。
TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输
数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方
向的连接必须都关闭。如图所示:
- 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;
- PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
- 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有
数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连
接。 - PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开
网络层
传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另
外一台主机之间的传递。
网络层的PDU被称为Packet(包)。
网络层也叫Internet层
负责将分组报文从源主机发送到目的主机。
网络层作用
为网络中的设备提供逻辑地址。
负责数据包的寻径和转发。
常见协议如IPv4,IPv6、ICMP,IGMP等。
网络层协议工作过程
当采用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等。
以太网与MAC地址
以太网定义
以太网是一种广播式数据链路层协议,支持多点接入。
个人电脑的网络接口遵循的就是以太网标准。
一般情况下,一个广播域对应着一个IP网段。
以太网MAC地址
MAC (Media Access Control)地址在网络中唯一标识一个网卡,
每个网卡都需要且会有唯一的一个MAC地址。
MAC用于在一个IP网段内,寻址找到具体的物理设备。
工作在数据链路层的设备。例如以太网交换机,会维护一张
MAC地址表,用于指导数据帧转发。
MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F
地址解析协议(ARP)
ARP (Address Resolution Protocol)地址解析协议:
根据已知的IP地址解析获得其对应的MAC地址。
ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址的
一个TCP/IP协议。
ARP是IPv4中必不可少的一种协议,它的主要功能是:
将IP地址解析为MAC地址;
维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
实现网段内重复IP地址的检测。
物理层
数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是
电磁波信号。
物理层的PDU被称为比特流(Bitstream)。
物理层位于模型的最底层:
负责比特流在介质上的传输。
规范了线缆、针脚、电压、接口等物理特性规范。
常见的传输介质有:双绞线、光纤、电磁波等。
常见传输介质
双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为:
STP-屏蔽双绞线
UTP-非屏蔽双绞线
光纤传输,按照功能部件可分为:
光纤:光传输介质,简单的说,就是一根玻璃纤维,用于约束光传输的通道。
光模块:将电信号与光信号互转的器件,产生光信号。
串口电缆在WAN(Wide Area Network,广域网)中大规模使用,根据WAN线路类型不同,
串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI
接口等。
无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出
去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据
传输
发送方数据封装

中间网络数据传输
封装好的完整数据,将会在网络中被传递。
一般情况下:
网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的
信息进行相应的“交换”操作。
▫ 网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进
行相应的“路由”操作。
▫ 注:“交换”和“路由”的详细细节和原则,将会在后面的课程中详细介绍。
接收方数据解封装
经过中间网络传递之后,数据最终到达目的服务器。根据不同的协议头部的信息,数据将
被一层层的解封装并做相应的处理和传递,最终交由WEB服务器上的应用程序进行处理。
浙公网安备 33010602011771号