
计算网络与通信总结
计算网络与通信总结
计算机网络与通信基础
两台计算机如何通信
想要实现通信,首先,需要两台计算机精确的找到彼此的位置。要想交换信息,还需要双方共同遵守一定的通信规则即通信协议。否则,双方无法收发或者理解彼此的消息。
五层协议模型
为了将人们读写的明文信息转为能在网络上不同节点间传播的电信号,网络协议的实现较为繁杂。为了降低复杂性,网络协议通常按照层次化结构方式来组织设计。每一层完成特定功能并通过接口为它的上一层提供服务。我们所说的节点间通信协议,实际上是说节点间对等层之间的通信协议。比如:物理层协议、传输层协议和应用层协议等等。
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
物理层
物理层的作用就是使计算机之间借助物理媒介来传递比特流(0,1数据序列)。传输介质比如:双绞线、同轴电缆、光纤 // 无线电波、微波、红外线、激光等。但是,仅仅靠物理层是无法保证数据传输的正确性的。为此,设计了数据链路层。
数据链路层
链路层实现的是每段链路之间的通信。数据链路层的作用就是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。该层还负责将来自网络层数据报的前后部分添加首部和尾部,即封装成帧。接收端的数据链路层在收到物理层传递的比特流后,按照协议就能根据首部尾部的标记识别出帧的开始和结束。

为了识别信息的收发方,出现了MAC地址,即数据链路层地址,它可以唯一标识网络适配器(网卡),这样帧的发送端和接收端就可以被唯一的识别到。那么,一台计算机如何知道另一台计算的网络地址呢?这就需要网络层的ARP地址解析协议来解决。
网络层
网络层的功能是建立主机到主机的通信。它的任务是选择合适的网间路由和交换结点,确保数据及时传送。在发送数据时,网络层把传输层产生的报文段或用户数据报封装成分组和包进行传送。在TCP/IP体系结构中,由于网络层使用IP协议,因此分组也叫做IP数据报,简称数据报。
ARP地址解析协议(Address Resolution Protocol)
这个协议可以让一台计算机通过IP地址获知另一台计算机的MAC地址。在通信过程中,IP数据报的源地址和目的地地址始终不变,而MAC地址随着链路的改变而改变。(每个链路有自己唯一的MAC,不同的链路就有不同的MAC)每个主机都有一个ARP高速缓存,里面有本局域网上的各主机和路由的IP地址到MAC地址的映射表。
如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组(该分组携带自己的 IP 地址 和 MAC 地址 以及 目标主机的 IP 地址),主机 B 收到该请求后会发送 ARP 响应分组 给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。
IP因特网协议(Internet Protocol)
IP协议用于屏蔽下层物理网络的差异,为上层提供统一的IP数据报。IP协议的地址,我们称之为IP地址。IP数据报汇总含有收/发方的IP地址。IP提供无连接的、不可靠的、尽力的数据投递服务。
ICMP协议
IGMP协议
RARP反向地址解析协议(Reverse Address Resolution Protocol)
该协议可以实现由 MAC 地址转化为 IP 地址。
传输层
主机想要知道从物理层、数据链路层和网络层传递过来的数据到底是给哪个应用程序使用时,就需要一个端口号来指定某一具体应用程序。即IP地址 + Port端口号就可以唯一确定某个主机上的某个应用程序。也就是说传输层的功能是建立端口到端口的通信。(或者是进程到进程间的通信)
TCP传输控制协议(Transmission Control Protocol)
是可靠的传输。TCP是面向连接的服务,传输数据之前必须先建立连接(三次握手建立连接),数据传输结束后释放连接。TCP不提供广播或多播服务,由于TCP要提供可靠的面向连接的服务,使得协议数据单元的首部增大很多,还要占用许多资源来处理。一般应用在文件传输、收发邮件和远程登录等。
UDP用户数据报协议(User Datagram Protocol)
是不可靠的传输。UDP在传送数据之前不需要先建立连接,远程主机在收到UDP报文后,也不需要给出任何确认。虽然UDP不提供可靠交付,但在即时通信应用场景中确实是一种有效的工作方式。
应用层
应用层的功能是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间的通信和交互规则。由于传输层传来的数据五花八门,有html格式、mp3格式、txt格式等等,所以需要对不同的网络应用需要不同的应用层协议。应用层交互的数据单元是报文。
DNS域名解析协议(Domain Name System)
它是将域名和IP地址相互映射的一个分布式数据库,人们不必记住IP地址,而是使用域名即可访问到互联网。端口是53
HTTP超文本传输协议(Hypertext Transfer Protocol)
端口是80
SMTP协议