没有合适的资源?快使用搜索试试~ 我知道了~
1. 网络上某位大神总结的,相当不错 2. 这里将其汇集成册,供学习参考
资源推荐
资源详情
资源评论
TCP-IP 协议详解(1)邮差与邮局 (网络协议概观)
信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设
定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一
个简单的协议。协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组
合,来代表不同的英文字母。比如 SOS(***—***, *代表短信号,-代表长信号)。这样“***=
S, —=O”就是摩尔斯码规定的协议。然而更进一层,人们会知道 SOS 是求助信息,原因是
我们有“SOS=求救”这个协议存在在脑海里。所以”***—***=SOS=求救”是一个由两个协议
组成的分层通信系统。
使用 Morse Code 的电报机
计算机之间的通信也要遵循不同层次的协议,来实现计算机的通信。
物理层(physical layer)
所谓的物理层,是指光纤、电缆或者电磁波等真实存在的物理媒介。这些媒介可以传送物
理信号,比如亮度、电压或者振幅。对于数字应用来说,我们只需要两种物理信号来分别
表示 0 和 1,比如用高电压表示 1,低电压表示 0,就构成了简单的物理层协议。针对某种
媒介,电脑可以有相应的接口,用来接收物理信号,并解读成为 0/1 序列。
连接层(link layer)
在连接层,信息以帧(frame)为单位传输。所谓的帧,是一段有限的 0/1 序列。连接层协议
的功能就是识别 0/1 序列中所包含的帧。比如说,根据一定的 0/1 组合识别出帧的起始和
结束。在帧中,有收信地址(Source, SRC)和送信地址(Destination, DST),还有能够探测
错误的校验序列(Frame Check Sequence)。当然,帧中最重要的最重要是所要传输的数据
(payload)。这些数据往往符合更高层协议,供网络的上层使用。与数据相配套,帧中也有
数据的类型(Type)信息。连接层协议不关心数据中到底包含什么。帧就像是一个信封,把
数据包裹起来。
以太网(Ethernet)和 WiFi 是现在最常见的连接层协议。通过连接层协议,我们可以建立局
域的以太网或者 WiFi 局域网,并让位于同一局域网络中的两台计算机通信。连接层就像是
一个社区的邮差,他认识社区中的每一户人。社区中的每个人都可以将一封信(帧)交给他,
让他送给同一社区的另一户人家。
连接层:社区小邮差
网络层(network layer)
不同的社区之间该如何通信呢? 换句话说,如何让 WiFi 上的一台计算机和以太网上的另
一台计算机通信呢?我们需要一个“中间人”。这个“中间人”必须有以下功能: 1. 能从物理层
上在两个网络的接收和发送 0/1 序列,2. 能同时理解两种网络的帧格式。路由器(router)就
是为此而产生的“翻译”。一个路由器有多个网卡(NIC,Network Interface Controller),每个
NIC 可以接入多个网络,并理解相应的连接层协议。在帧经过路由到达另一个网络的时候,
路由会读取帧的信息,并改写以发送到另一个网络。所以路由器就像是在两个社区都有分
支的邮局。一个社区的邮差将信送到本社区的邮局分支,而邮局会通过自己在另一个地区
的分支将信转交给另一个社区的邮差手中,并由另一个社区的邮差最终送到目的地。
通过路由连接的 WiFi 和以太网
整个通信过程如下:
WiFi 上的计算机 1->路由 WiFi 接口 -> 路由以太网接口 -> 以太网上的计算机 2
(蓝色表示 WiFi 网络,绿色表示以太网络)
在连接层,我们的一个帧中只能记录 SRC 和 DST 两个地址。而上面的过程需要经过四个
地址 (计算机 1,WiFi 接口,以太网接口,计算机 2)。显然,仅仅靠连接层协议无法满足
我们的需要。由于连接层协议开发在先,我们无法改动连接层协议,只能在连接层的数据
(payload),也就是信纸内部下功夫了。IP 协议应运而生。
计算机 1,路由器和计算机 2 都要懂得 IP 协议。当计算机 1 写信的时候,会在信纸的开头
写上这封信的出发地址和最终到达地址 (而不是在信封上),而在信封上写上要送往邮局。
WiFi 网的邮差将信送往邮局。在邮局,信被打开,邮局工作人员看到最终地址,于是将信
包装在一个新的信封中,写上出发地为邮局,到达地为计算机 2,并交给以太网的邮差,
由以太网的邮差送往计算机 2。
(IP 协议还要求写如诸如校验等信息,交通状况等信息,以保护通信的稳定性。)
转交给邮局
在连接层,邮差只负责在本社区送信,所以信封上的地址总是“第一条街第三座房子”或者
说“中心十字路口拐角的小房子”这样一些本地人才了解的地址描述,这给邮局的工作带来
不便。所以邮局要求,信纸上写的地址必须是一个符合官方规定的“邮编”,也就是 IP 地址。
这个地址为世界上的每一个房子编号(邮编)。当信件送到邮局的时候,邮局根据邮编,就
能查到对应的地址描述,从而能顺利改写信封上的信息。
每个邮局一般连接多个社区,而一个社区也可以有多个邮局,分别通往不同的社区。有时
候一封信要通过多个邮局转交,才能最终到达目的地,这个过程叫做 route。邮局将分离的
局域网络连接成了 internet,并最终构成了覆盖全球的互联网。
传输层(transport layer)
上面的三层协议让不同的计算机之间可以通信。但计算机中实际上有许多个进程,每个进
程都可能有通信的需求。这就好像一所房子里住了好几个人(进程),如何让信精确的送到
某个人手里呢?遵照之前相同的逻辑,我们需要在信纸上写上新的信息,比如收信人的姓
名,才可能让信送到。所以,传输层就是在信纸的空白上写上新的“收信人”信息。每一所
房子会配备一个管理员(传输层协议)。管理员从邮差手中接过信,会根据“收信人”,将信送
给房子中的某个人。
管理员
传输层协议,比如 TCP 和 UDP,使用端口号(port number)来识别收信人(某个进程)。在写
信的时候,我们写上目的地的端口。当信到达目的地的管理员手中,他会根据传输层协议,
识别端口号,将信送给不同的人。
TCP 和 UDP 协议是两种不同的传输层协议。UDP 协议类似于我们的信件交流过程。TCP
协议则好像两个情人间的频繁通信。一个小情人要表达的感情太多,以致于连续写了好几
封信。而另一方必须将这些信按顺序排列起来,才能看明白全部的意思。TCP 协议还有控
制网络交通等功能。
应用层(application layer)
通过上面的几层协议,我们已经可以在任意两个人(进程)之间进行通信。然而每个人实际
上从事的是不同的行业。有的人是律师,有的人外交官。比如说律师之间的通信,会用严
格的律师术语,以免产生纠纷。再比如外交官之间的通信,必须符合一定的外交格式,以
免发生外交误会。再比如间谍通过暗号来传递加密信息。应用层协议是对信件内容进一步
的用语规范。应用层的协议包括用于 Web 浏览的 HTTP 协议,用于传输文件的 FTP 协议,
用于 Email 的 IMAP 等等。
剩余63页未读,继续阅读
资源评论
realizelizj
- 粉丝: 16
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术面试最后反问面试官的话 校招面试非技术问题有哪些 非技术问题如何回答.png
- NB-IOT-BC26全网通模块Altium+ CADENCE +PADS三种格式(原理图SCH+PCB封装库)文件.zip
- 基于微信小程序开发的校园失物招领系统源码毕业设计(优质项目源码).zip
- 词向量是一种将自然语言中的单词转换为数值向量的技术,它能够捕捉词义和上下文信息
- nmap与masscan的简单使用
- MyBatis动态SQL.pdf
- 基于stm32单片机protues仿真的温湿度控制系统设计(仿真图、源代码)
- 词向量:自然语言处理的基石
- mybatis动态sql
- 40G微信小程序开发教程(工具插件+视频教程)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功