计算机网络体系结构(最近面试,临时抱佛腿!)
OSI七层协议体系结构
- 应用层
- 表示层
- 会话层
- 运输层
- 网络层
- 数据链路层
- 物理层
五层协议
- 应用层
- 运输层
- 网络层
- 数据链路层
- 物理层
TCP/IP的四层协议
- 应用层(DNS/FTP/Telnet/SMTP/HTTP/RIP/NFS…………)
- 运输层(TCP或UDP)
- 网际层(IP/ARP)
- 网络接口层
注意:DNS提供的是域名与IP地址的对应关系,ARP提供的是IP地址和MAC地址的对应关系
DNS
DNS(Domain Name Service域名服务)协议基于UDP,使用端口号53
域名解析的过程有两种查询方式,即DNS有迭代查询和递归查询
迭代查询:在客户端给DNS服务器发送域名解析请求时,如果该DNS服务器没有该域名的DNS信息,DNS服务器会告诉客户端另一台DNS服务器的地址,客户端再向这台DNS服务器提交请求,依次循环直到返回查询结果。
递归查询:在客户端给DNS服务器发送域名解析请求时,如果该DNS服务器没有该域名的DNS信息,DNS服务器会询问其他DNS服务器,并将查询到的DNS信息返回给客户机。
FTP
FTP(File Transfer Protocol文件传输协议)基于TCP,使用端口20(数据)和21(控制)。
它的功能是减少在不同操作系统下处理文件的不兼容性,以达到便捷高效的文件传输效果。
- FTP只是提供文件传输的基本服务,它采用客户端——服务器的方式,一个FTP服务器可同时为多个客户端提供服务。
- 在进行文件传输时,FTP的客户端和服务器之间会建立两个TCP连接:21号端口建立控制连接,20号端口建立数据连接。
- FTP的传输用两种方式:ASCII传输模式和二进制数据传输模式。
HTTP
HTTP(HyperText Transfer Protocol超文本传输协议)基于TCP,使用端口号是80或8080。
原理:
- 点击一个链接后,浏览器向服务器发起TCP连接
- 连接建立后浏览器发送HTTP请求报文,然后服务器回复响应报文
- 浏览器将收到的响应报文内容显示在网页上
- 报文收发结束,关闭TCP连接
HTTP报文结构
报文分3部分
- 开始行:用于区分是请求报文还是响应报文,请求报文中开始行叫做请求行,而响应报文中,开始行叫做状态行。在开始行的三个字段之间都用空格分开,结尾处 CRLF 表示回车和换行。
- 首部行:用于说明浏览器、服务器或报文主体的一些信息。
- 实体主体:请求报文中通常不用实体主体。
请求报文的方法字段是对所请求对象进行的操作,而响应报文的状态码是一个 3 位数字,分为 5 类 33 种:
- 1XX表示通知信息,如收到或正在处理
- 2XX表示成功接收
- 3XX表示重定向
- 4XX表示客户的差错,如404表示网页未找到
- 5XX表示服务器的差错,如常见的502Bad Gateway
应用层(application layer)
应用层是体系结构中最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。
应用层协议定义的是应用进程间通信和交互的规则
注意:这儿的进程是指主机中正运行的程序
运输层(transport layer)
运输层的任务就是负责向两个主机中进程的通信提供通用的数据传输服务。
运输层中有复用和分用的功能。
复用:就是多个应用层进程可以同时使用下面运输层的服务
分用:就是运输层把收到的信息分别交付上面应用层中的相应进程
运输层TCP/UDP协议对比
比较 | TCP | UDP |
---|---|---|
名称 | Transmission Control Protocol(传输控制协议) | User Datagram Protocol(用户数据报协议) |
连接 | 面向连接的协议 | 无连接协议 |
功能 | 一个信息在因特网上从一个主机到另一个主机。这个链接就是以TCP连接为基础 | UDP也是消息传输协议,它不基于连接,一个程序向另一个程序发送数据包,然后结束关系 |
用法 | TCP适用于高可靠性的应用,传输时间相对不是那么关键 | UDP适用于需要快速,高效传输的应用程序,如游戏。 |
应用过该协议的协议 | HTTP,FTP,SMTP,Telnet | DNS,DHCP,TFTP,SNMP,RIP,VOIP |
报头的大小 | TCP大小为20字节 | UDP大小为8字节 |
错误检查 | TCP执行错误检查和错误恢复,错误的数据包将从源地址重传到目的地 | UDP执行错误检查,丢掉错误的数据包,不尝试错误恢复 |
握手 | 三次握手,四次挥手(SYN,SYN-ACK,ACK) | 无连接协议 |
网络层(network layer)
网络层负责为分组交换上的不同主机提供通信服务
在发送数据时,网络层把运输层产生的报文段(TCP数据传输单位)或用户数据报(UDPUDP数据传输单位)封装成分组或包进行传送。分组或包也叫IP数据报,或简称为数据报。
因特网主要的网络协议是无连接的网际协议IP(Internet Protocol)和许多种路由选择协议
数据链路层(data link layer)
数据链路层常简称为链路层。
在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)
物理层(physical layer)
在物理层上所传数据的单位是比特。