网络的七层模型
七层模型结构
OSI七层模型 | TCP/IP五层模型 | 说明 | 协议 | 硬件 | 解释 |
应用层 | 应用层 | 网络服务与最终用户的一个接口 | HTTP HTTPS FTP TFTP SMTP POP3 IMAP TELNET SNMP DHCP | 这层不涉及硬件,主要是web应用的表形式 | 为应用程序提供网络服务 |
表示层 | 数据的表示、安全、压缩。 | 数据的格式化,格式有,JPEG、ASCll、EBCDIC、加密、解密 | |||
会话层 | 建立、维护、管理、终止会话连接 | 对应主机进程,指本地主机与远程主机正在进行的会话 | |||
传输层 | 传输层 | 定义传输数据的协议端口号,以及流控和差错校验 | TCP UDP | 四层交换机、四层路由器 | 建立、维护、管理端到端的连接 |
网络层 | 网络层 | 进行逻辑地址寻址,实现不同网络之间的路径选择。 | IP(IPV4 IPV6) ICMP IGMP | 路由器。三层交换机 | IP寻址和路由选择 |
数据链路层 | 数据链路层 | 控制网络层与物理层之间的通信,建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议) | ARP RARP IEEE802.3 PPP CSMA/CD | 网桥,以太网交换机,网卡 | 将byte组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。 |
物理层 | 物理层 | 建立、维护、断开物理连接。 | FE自协商 Manchester MLT-3 4A PAM5 | 中继器,集线器。双绞线 | Byte流传输 |
七层模型协议
模型层 | 协议 | 说明 |
应用层 | HTTP | 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。 |
HTTPS | HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 | |
FTP | FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。 默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。 | |
TFTP | TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。 | |
SMTP | SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。 | |
POP3 | POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。 | |
IMAP | IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。 | |
TELNET | Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。 | |
SNMP | 简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。 | |
DHCP | DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。 DHCP有三种机制分配IP地址: 1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。 2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。 3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。 | |
传输层 | TCP | 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议, |
UDP | UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务, | |
网络层 | IP | IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。 |
ICMP | ICMP是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 | |
IGMP | IGMP是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。 | |
IPX | IPX 是指互联网分组交换协议,提供分组寻址和选择路由的功能,保证可靠到达,相当于数据报的功能;SPX 是顺序报文分组交换协议,它可保证信息流按序、可靠地传送;IPX/SPX 为Novell网在网络层和传输层采用的协议;SDLC 是SNA 中的数据链路层协议,后修改为HDLC(高级数据链路控制);NFS是SUN 制定的网络文件服务标准;ODBC 是微软制定的异构数据库互访的标准,真正体现了数据库开放性。 | |
OSPF | OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。 | |
数据链路层 | ARP | ARP是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址. |
RARP | 反向地址转换协议(RARP:Reverse Address Resolution Protocol) 反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址. | |
STPP | STP(Spanning Tree Protocol)是生成树协议的英文缩写,可应用于计算机网络中树形拓扑结构建立,主要作用是防止网桥网络中的冗余链路形成环路工作。但某些特定因素会导致STP失败,要排除故障可能非常困难,这取决于网络设计 [1] 。生成树协议适合所有厂商的网络设备,在配置上和体现功能强度上有所差别,但是在原理和应用效果是一致的。 | |
SDLC | SDLC(Synchronous Data Link Control,同步数据链路控制),是IBM公司于70年代初期,为满足用户需要以环路方式配置设备,而设计推出的的一种通信协议。目前,它已被广泛地应用于金融POS端中。大量的实际应用表明,作为金融POS终端与英航主机之间的一种通讯协议,SDLC具有连接时间段,通讯效率高,纠错能力强等优点。可以说,SDLC已经成为金融POS端领域的通讯标准。 | |
HDLC | HDLC(High-Level Data Link Control,高级数据链路控制),是链路层协议的一项国际标准,用以实现远程用户间资源共享以及信息交互。HDLC协议用以保证传送到下一层的数据在传输过程中能够准确地被接收,也就是差错释放中没有任何损失,并且序列正确。HDLC协议的另一个重要功能是流量控制,即一旦接收端收到数据,便能立即进行传输。 | |
PPP | 点对点协议(Point to Point Protocol,PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。 | |
物理层 | EIA/TIA标准 | EIA美国电子工业协会创建于1924年,当时名为无线电制造商协会(Radio Manufacturers' Association:RMA),只有17名成员,代表不过200万美元产值的无线电制造业,而今,EIA成员已超过500名。 TIA是一个全方位的服务性国家贸易组织,其成员包括为美国和世界各地提供通信和信息技术产品、系统和专业技术服务的900余家大小公司,此外,TIA还有一个分支机构——多媒体通信协会(MMTA)。TIA还与美国电子工业协会(EIA)有着广泛而密切的联系。TIA也是经过ANSI认可的指定标准的组织,但其属于行会性质,除了标准工作外,其职责还包括为保护和促进会员厂家利益而影响政策、促进市场和组织交流。 |
RJ45 | RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。RJ是Registered Jack的缩写,意思是“注册的插座”。在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称。 |
HTTP
HTTP请求
HTTP响应
TCP
TCP协议的特点
- 面向连接
- 面向字符流,字符流就像是一个管道,从一端放入什么内容,从另一端就可以取出同样的内容,它描述了一个不出现丢失,重复和乱序的数据传输过程。
- 可靠的,TCP协议使用确认机制检查数据是否安全和完整的到达,在发送数据丢失时,有重传机制并且提供拥塞控制功能。
TCP协议报文格式
- 端口号, 包括源端口号和目的端口号,通过端口号将数据报交给应用进程。
- 序号,序号的范围在0~4284967295. TCP是面向字节流的,它要为发送字节流中的每个字节进行编号。
- 确认序号,确认号表示一个进程已经正确接收序号为N的字节,要求发送端下一个要发送的序号为N+1的字节的报文。
- 报头长度,报头长度的长度为4位。TCP报头长度是以4字节为一个单元来计算的,TCP报头的固定长度为5个单元,选项为10个单元,所以这个字段的值在515之间;实际报头长度是在2060字节。
- 控制字段,控制字段用于TCP的连接建立和终止,流量控制,以及数据传送过程。
- 紧急(URG)位,将UGR置1,表示该报文的优先级高,需要插到报文的最前面,需要尽快发送。URG位一般与紧急指针字段配合使用。
- 确认(ACK)位,在确认报文传输正确或者同意对方请求时,ACK置1.
- 推送(PSH)位,在两个进程交互时,一端应用进程希望在输入一个命令之后,能够立即得到对方响应。
- 复位(RST)位,RST置1有两种含义:一是因主机崩溃等原因造成TCP连接出错,需要立即释放连接,然后重新建立连接。二是拒绝一个非法TCP报文或拒绝释放一个连接。
- 同步(SYN)位,SYN常用于建立连接时来同步序号。
- 终止(FIN)位,FIN=1表示请求释放连接。
- 窗口大小,窗口大小指接收端的接收缓冲区的大小,最大长度在0~65535字节,用来通知发送端下一次最多发送的报文的字节数。窗口字段的值是动态变化的。
7)选项,选项字段最多可以有10个单元,即40个字节。单字节选项包括选项结束和无操作;多字节选项包括最大报文段长度,窗口扩大因子及时间戳。 - 校验和, TCP的校验和是必须有的,保证数据的可靠性。
UDP
UDP协议的特点
- UDP 协议是一种无连接 的,不可靠的传输协议。
- UDP协议是一种面向报文的传输层协议。
UDP缓冲区
- UDP没有真正意义上的发送缓冲区,调用sendto直接将数据交给内核,由内核将数据交给网络层进行后续的传输动作。
- UDP具有接收缓冲区,但是这个接收缓冲区不能保证数据的正确性,如果缓冲区满了,再到达的UDP数据就会丢弃。
UDP报头
- 端口号字段包括源端口号和目的端口号,通过端口号确认将数据交给哪一个应用进程。
- 长度字段的长度是16位,它包括UDP报头和用户数据的总长度。用户数据报的最大长度为65535字节,最小是8字节(只有报头),UDP报文的数据最大长度为65527个字节。
- 校验和 UDP的校验和不是必须有的,是可选的。
基于UDP的应用层协议
服务协议 | 说明 |
---|---|
RIP | 路由信息协议 |
DNS | 域名服务 |
DHCP | 动态主机配置协议 |
TFTP | 简单文件传输协议 |
SNMP | 简单网络管理协议 |
IP
- 版本号:占四位,就是IP协议的版本,通信双方的IP协议必须要达到一致,IPv4的版本就是4.
- 首部长度:占四位,因为长度为四比特,所以首部长度的最大值为1111,15,又因为首部长度代表的单位长度为32个字(也就是4个字节),所以首部长度的最小值就是0101,当然,也确实如此,大部分的ip头部中首部字节都是0101.也就是5*4=20个字节,如果是最大值15的话,ip首部的最大值就是60个字节,所以记好了,ipv4首部长度的最大值就是60,当然当中我们又能发现,IPv4的首段长度一定是4字节的整数倍,要是不是怎么办呢?别急,后面的填充字段会自动填充补齐到4字节的整数倍的。
- 区分服务:这个没有什么用处,也没有什么好讲的了,只要自动这玩意占八位,一个字节就可以了。
- 总长度:占16位,这个的意思就是ip数据报中首部和数据的总和的长度,因为占16位,所以很好理解,总长度的最大值就是2的16次方减一,65535,这玩意也对应着还有一个很简单的概念,最大传输单元mtu,意味着一个IP数据报的最大长度就只能装下65535个字节,要是传输的长度超过这个怎么办,很简单,分片
- 标识:占16位,标识这玩意很好理解,IP在存储器中维持一个计数器,每产生一个 数据报,计数器就加1,并将此值赋给标识字段。但这个标识并不是平常的序号,因为IP是 无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分 片时,这个标识字段的值就被复制到所有的数据报片的标识字段中,等到重组的时候,相同标识符的值的数据报就会被重新组装成一个数据报。
- 标志:占三位,一般有用的是前两位,
最低位叫做MF,MF=1表示后面还有若干个数据报,MF=0表示这已经是最后一个数据报了。
中间位叫做DF,DF表示不能进行分片,DF=0才可以进行分片操作。 - 片偏移:占13位,片偏移就是,在原来的数据报分片以后,该片在原分组中的相对位置,片偏移中的基本单位是8字节,所以,也就是说,只要是分片,每个分片的长度都是8字节的整数倍,最后一个分片不够八字节的一样是填充。
- 生存时间ttl:占8位,(time to live),表明数据报在网络中的寿命,这个值被设定成跳数,顾名思义,就是这个数据报可以经过多少个路由器的数量,每经过一个路由器,该值就减一,减到为零的时候就被抛弃,显而易见,这个跳数的最大值就是2的8次方减一,255.
- 协议:就是用来指明数据报携带了哪种协议,占8位。
- 首部效验和:占16位,这个字段用来效验数据报首段,
- IP源地址:占32位,将IP地址看作是32位数值则需要将网络字节顺序转化位主机字节顺序。转化的方法是:将每4个字节首尾互换,将2、3字节互换。
- 目的地址:也占32位,转换方法和来源IP地址一样。
- 到了可变部分IPv4的头部基本上就已经讲完了,增加头部的可变选项实际上就是增加了数据报的功能,可变选项在实际上是很少用到的。