计算机网络
三种网络结构
-
OSI:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 -
TCP/IP:网络接口层、网际层、传输层、应用层 -
五层:物理层、数据链路层、网络层、传输层、应用层
应用层
??它的任务是通过应用进程间的交互来完成特定网络应用,应用层协议定义的时应用进程间的通信和交互规则,对于不同的网络应用需要不同的应用层协议,应用层交互的数据单元称为报文。
应用层协议应当定义:
- 应用进程交换的报文类型,如请求报文、响应报文
- 各种报文类型的语法,如各个字段及其详细描述
- 字段的语义,即包含在字段中的信息的含义
- 进程何时、如何发送报文,以及对报文进行响应的规则
常见协议:
- 域名系统DNS(Domain Name System):从域名解析出IP地址,作为一个可以将域名和IP地址相互映射的一个分布式数据库,使访问者不需要记住IP串。区域传输时用的时TCP,其他时候用的时UDP,辅域名服务器定时向主域名服务器查询了解数据变动,有变动则进行区域传输。域名解析用的是UDP
- 超文本传输协议HTTP(HyperText Transfer Protocol):所有万维网文件都要遵守这个标准,定义了浏览器怎么向万维网服务器请求万维网文档,以及服务器怎样把文档传给浏览器,层次上看 它是面向事务的。HTTP本身是无连接的,也就是说在交换HTTP报文之前不需要先建立HTTP连接,运输层使用TCP,端口是80。HTTP是无状态的,每次访问,服务器的响应是一样的,不会记得这个客户。
- 文件传输协议FTP(File Transfer Protocol)和简单文件传输协议TFTP:**FTP是基于TCP的,端口号是21,TFTP是基于UDP的,端口号69。**若要存取一个文件,必须获得本地的文件副本,修改只能对副本进行修改,然后将修改后的副本传回原节点。**FTP的客户和服务器建立控制连接(端口21)和数据连接(端口20)两个并行的TCP连接。**不满512字节是TFTP的结束标志。
- 邮件传输协议SMTP和邮件读取协议POP3、IMAP以及邮件扩充协议MIME:SMTP发送邮件,基于TCP连接,只能传送可打印的7位ASCII码邮件,MIME可以传送多种数据类型,如声音、文本、图像视频等。
传输层
??它主要负责向两台主机进程之间的通信提供通用的数据传输服务,应用层利用该服务传送应用层报文,并不针对某一特定的网络应用。由于同一台主机可以同时运行多个进程,运输层有复用和分用的功能。复用就是多个应用层进程同时使用下面运输层的服务,分用就是把收到的信息分别交付给上面应用层中的相应进程。
主要协议:
- 传输控制协议(Transmission Control Protocol):
- 面向连接
- 可靠
- 传输字节流
- 传输效率慢
- 需要的资源多
- 首部字节20-60
- 不支持多播广播,连接被通信的两个端点
- 一般用于要求通信数据可靠,如文件传输、邮件传输等
- 用户数据协议(User Datagram Protocol):
- 无连接
- 不可靠
- 传输数据报文段
- 传输效率快
- 需要资源少
- 支持一对一、一对多和多对多的交互通信
- 用于要求通信速度高,如域名转换、语音、直播等
网络层
??在计算机网络中进行通信的计算机之间可能经过很多个数据链路,也可能经过很多个通信子网。网络层的任务就是选择何时的网间路由和交换结点,确保数据及时传送。发送数据时,网络层把传输层产生的报文段和用户数据报封装成成分组和包进行传送。不要把传输层的用户数据报和网络层的IP数据报弄混。网络层向上只提供简单灵活、无连接的、尽最大努力交付的数据报服务。在发送分组时,不需要先建立连接,每个分组都是独立发送的,与其前后的分组无关,每个分组都有完整的终点地址,到达终点是无序的,差错处理由用户主机的传输层控制。互联网通过大量的异构网络通过路由器相互连接起来的,使用的时无连接的网际协议IP和许多路由选择协议。
数据链路层
??两台主机之间的数据传输,总是在一段段的链路上传送,两个相连节点传送数据时,链路层将网络层交下来的IP数据报组装成帧,在两个相邻的节点间的链路上传送帧,每一帧包括数据和必要的控制信息。在接收数据时,控制信息使接收端能够知道?个帧从哪个比特开始和到哪个比特结束,数据链路层在收到一帧后,从中提取数据部分上交网络层。
物理层
??物理层上传送的数据单位是比特,作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉传输介质和物理设备的差异。透明传输是指经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路像是看不见的。
数据在各层之间的传输过程
过程:主机1的进程1向主机2的进程2传送数据
- 进程1先将数据交给本机应用层,加上必要的控制信息H5,成为下一层的数据单元
- 传输层收到数据单元加上本层控制信息H4,成为下一层的数据单元。
- 网络层收到数据后,加上控制信息H3,成为下一层的数据单元
- 数据链路层将控制信息分为H2和T2两个部分加到首部和尾部
- 物理层传送比特流,不需要加控制信息,直接从首部开始传送
- 数据离开主机1经过网络的物理媒体传送到路由器时,上层至第三层,每一层根据控制信息进行必要的操作,并将控制信息去掉,将剩下的数据交给上一层。
- 在路由器第三层,根据首部中的目的地址查找路由器中的转发表,找出分组的接口,然后下传至第二层加上新的首部和尾部,再到第一层通过物理媒体将比特发送出去
- 比特流来到主机2,从第一层依次上升至第五层,最后把进程1发送的数据交给进程2。
当然在实际中,这些过程是对用户屏蔽的,仿佛数据直接从进程1给到进程2的。
|