网络的构成就像一个社会,
它的每一次迭代,都是为了解决一个具体的问题
《计算机网络》这门课为何如此之难? : https://www.zhihu.com/question/19718686/answer/185348786
作者:小秋仙女
链接:https://www.zhihu.com/question/19718686/answer/185348786
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
----------------------------------------
我们的因特网,肯定是基于物理电路的,
因此,我们需要一个,将数据转化为物理信号的层,
于是,物理层诞生啦----------------------------------------
有了处理物理信号的物理层,可我们还得知道,信号发给谁啊
你肯定知道,每个主机都有一个,全球唯一的MAC地址吧
所以,我们可以用MAC地址来寻址啊
恭喜你,链路层诞生啦----------------------------------------
别急,你知道MAC地址,是扁平化的吧
也就是说,MAC地址的空间分布,是无规律的!!!
如果你有十万台主机,要通过MAC地址来寻址
无F**K可说,
不管你设计什么样的算法,数据量都太大了!!!
所以,我们需要IP地址啊
<PS,IP里的有趣的东西太多啦,所以我补充在了最后>
有了IP地址,恭喜你,网络层诞生啦-----------------------------------------
然而,一台主机不能只和一台服务器通信啊,
毕竟下小电影,也要同时货比三家啊
那如何实现并行通信呢?
嘿嘿,我们有端口号啊再基于不同需求:
有人想要连得快,不介意数据丢失,比如你的小电影
有人必须要数据可靠,比如发一个电子邮件
于是产生了UDP&TCP
恭喜你,运输层诞生啦-----------------------------------------
别急,你知道的吧,不同应用,有不同的传输需求
比如,请求网页,发送邮件,P2P...
而且,还有DHCP服务器啊
为了方便开发者,我们就对这些常用需求,进行了封装
恭喜你,应用层诞生啦
一、开放系统互联参考模型: Open System InterConnection/Refrence Model (OSI)
将通信协议分为7层,由下往上分为:
- 物理层: Physics Layer
- 数据链层: Data Link Layer
- 网络层: Network Layer
- 传输层: Transport Layer
- 会话层: Session Layer
- 表示层: Presentation Layer
- 应用层: Application Layer
第4层:传输层,是数据传送服务
最上面的三层: 会话层、表示层、应用层为面向用户的通信
二、还可以将 OSI七层模型,分成TCP/IP 四层模型或TCP/IP 五层模型
三、详细介绍:
1. 物理层 (Physics Layer): 该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。
重要设备: 中继器(Repeater,也叫放大器)和集线器
2. 数据链层(Data Link Layer): 数据链路层为网络层提供可靠的数据传输;
基本数据单位: 帧(frame)
主要协议:以太网协议
重要设备: 网桥和交换机
3. 网络层(Network Layer) : 网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
基本数据单位: IP数据报
主要协议:
- IP协议(Internet Protocol,因特网互联协议);
- ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
- ARP协议(Address Resolution Protocol,地址解析协议);
- RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。
重要设备:路由器
4. 传输层(Transport Layer): 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
协议数据单元称为段或报文
主要协议:
- TCP协议(Transmission Control Protocol,传输控制协议)
- UDP协议(User Datagram Protocol,用户数据报协议)
重要设备: 网关
另外: 网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
5. 会话层 (Session Layer): 会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
6. 表示层(Presentation Layer): 表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
7. 应用层(Application Layer): 为操作系统或网络应用程序提供访问网络服务的接口。
数据传输基本单位为报文
主要协议:
- FTP(文件传送协议)
- Telnet(远程登录协议)
- DNS(域名解析协议)
- SMTP(邮件传送协议)
- POP3协议(邮局协议)
- HTTP协议(Hyper Text Transfer Protocol)
TCP/IP 协议的数据传输