目录
网络分类
TCP/IP协议族
应用层
传输层
传输层地址(端口号)
多路复用和解多路复用
拥塞控制
流量控制(确认系统)
差错控制
传输层协议
SCTP 流控制传输协议,是一个新的协议,结合了UDP和TCP的优点,像UDP一样,适用于音频和视频的实时传输;像TCP一样,提供差错控制和流量控制。
网络层
网络层地址(IP)
路由选择
网络层协议
数据链路层
物理层
层的总结
因特网应用
这一章的内容比较浅显,计算机网络知识在程序员的职业生涯中占有很大的比重,需要多参考其他专门讲解网络的书籍以及在实际工作中参悟。
网络是 硬件 和 软件 的组合,它把数据从一个地方发送到另一个地方。硬件是把电信号从网络中的一个节点传送到另一个节点的物理设备,即是真正用来传输数据的。软件是有指令组成,与硬件交互,发送方将数据单元按照一定协议组装成帧,发送给硬件,由硬件将帧转换成电磁信号,沿着物理链路传输;接受方硬件接收到电磁信号,被转回数字形式,交给上层软件处理,软件再按照协议解析还原成真实的数据。
为了分解完成任务所需的服务,创造了协议,这些协议允许使用不同技术的局域网和广域网相互连接在一起,从一点向另外一点传送信息。控制因特网的一组协议称为TCP/IP协议族。如今的TCP/IP协议族通常被定义成5层。
下图当消息从设备A发送到设备B时涉及的层,消息在传输时,可能经过许多路由器,路由器只使用前三层。
在一台机器中,每一层调用其直接下层的服务。例如第3层使用第2层的服务,并为第4层提供服务。
应层层提供对电子邮件、远程文件访问和传输、浏览万维网等服务等的支持。应用层负责向用户提供服务。常用的应用层协议由http、smtp、ftp、ssh、imap,还有一些用户自定的一些协议(比如游戏中使用的多是自动协议)。
实现:将应用层协议封装成数据包发送给下一层即传输层。
传输层负责整个消息的进程到进程的传输 -- 建立客户和服务器计算器的传输层的逻辑通信。
实现:将上层应用层的数据包,在其包头增加包含源和目的端口的传输层协议头,再发送给下一层即网络层。
当消息到达机器时,必须指向正确的进程,端口号作为同一台机器上不同进程的唯一标识。
传输层从不同进程中收集要发出的信息,并将到达的信息根据端口号分发给各自的进程,传输层使用端口号完成多路复用和解多路复用。在数据包中增加源和目的端口号。
传输层负责实现拥塞控制,物理上传送数据包的下层网络可能发生拥塞,这可能引起网络丢弃一些数据包。有些协议为每个进程使用缓冲区。消息在发送前存储在缓冲区中,如果传输层检测到网络上还有拥塞,就缓慢发送。
发送端的传输层能监控接受端的传输层,检查接受者接收到的数据包是否过量。接受者确认每个数据包或一组数据包,这样就允许发送者检查接收者接收到的数据包是否过量。
在消息传输过程中,可能被损坏、丢失、重复或乱序。传输层的发送负责确保消息被目的传输层正确接收,上面的确认系统也能提供差错控制。传输层可以在缓冲区(或临时存储)中保留消息的副本,直到它从接受者那里接收到包无损坏到达和次序正确的确认。如果在发送端在预期时间内没有收到接收端回传的确认信息,那么发送端就重新发送数据包。为了能够检查包的次序,传输层给每个包加上了次序好,给每个确认加上确认号。
在TCP/IP协议族中定义了三种传输层协议:UDP、TCP、SCTP:
负责源到目的的数据包的发送,可能跨多个网络,网络层保证每个数据包从源到目的主机。
实现:将上层传输层的数据包,在其包头增加包含源和目的IP地址的网络层协议头,再发送给下一层即数据链路层。
是指确定数据包的部分或全部路径。因为因特网是网络(LAN,WAN和MAN)的集合,因此从源到目的的数据包发送可能是几个发送的组合:源到路由器的发送、几个路由器到路由器的发送,最后是路由器到目的地的发送。当一个路由器接收到一个数据包时,它检查自己的路由表,决定这个数据包的最终目的地的最佳路线。路由表提供了下一个路由器的IP地址。当数据包到达下一个路由器时,下一个路由器在根据自己路由表做出新的选择。换言之,路由选择的决定是由每一个路由器根据自己的路由表决定的。路由表是由路由选择协议来完成的,路由选择协议像因特网上的所有路由器发送自己的消息,更新它们关于路由的信息。用在因特网的路由选择协议有:RIP、OSPF和BGP。
上图显示了经过几个网络从源到目的的数据包的路由选择。从源A到目的D,经过R1、R4、R5这条路径。
Note:路由器只使用TCP/IP协议族的前三层,既不需要传输层。
TCP/IP协议族支持一个主协议(IP)和几个辅助协议,帮助IP完成它的指责。
数据链路层负责数据帧的节点到节点的发送。
实现:将上层网络层的数据包,在其包头增加包含源和目的MAC地址的链路层协议头,再发送给下一层即物理层。
数据链路层的地址不是通用的,每个数据链路协议可能使用不同的地址格式和大小。以太网协议(当今的主流局域网)使用的48bit地址,通常被写成十六进制格式,例如:07:01:02:11:2C:5B。
数据链路层地址经常被称为物理地址或介质访问控制(MAC)地址。
在物理介质上传输二进制所需要的功能。物理层负责组成帧的单个二进制位从一个节点到另一个节点的传送。换言之,在数据链路层传送的单元是帧,物理层传送的二进制位。帧中的每个位被转化为电磁信号,通过无线或电缆等物理介质传播。
在应用层,进程交换信息;在传输层,数据单元被称为段(TCP),用户数据报(UDP)或包(SCTP);在网络层,数据单元被称为数据报;在数据链路层,数据单元被称为帧;在物理层,数据单元是二进制。
Note:在层中数据单元间的关系不是一对一的。换言之,第4层数据单元如果较大,在第3层ip层则会被分为多片,这就是IP分片,这样以来,一个4层数据单元则会对应多个3层单元。
电子邮件:POP,IMAP
文件传输协议:FTP
远程登录:TELNET
万维网:HTTP,HTTPS
视频会议,聊天
凡是过往,即为序章