协议三要素
我们在编写程序的时候肯定要在编程语言的规则下进行一般就如下三点。只有通过协议,计算机才知道我们要干什么
- 语法,就是一段内容符合一定的规则和格式。
- 语义,一段内容要代表某种意义。
- 顺序,就是先干啥后干啥。
网络为什么要分层?
- 通过分层可以使得那些比较复杂的网络协议更加简单化。
- 计算机领域的任何问题都可以增加一个间接的中间层来解决,计算机整个体系从上到下都是按照层次结构设计的。其实这一个架构设计的通用问题,不仅仅是网络协议的问题。一旦涉及到复杂的逻辑或者软件需求经常变动,一般都会通过分层来解决问题。
网络七层模型与四层模型(OSI模型+TCP/IP模型)
![](https://img.haomeiwen.com/i4578205/a1000a9742779736.png)
TCP和UDP有哪些区别?
- TCP 是面向连接 面向连接的协议是先建立连接,所谓建立连接是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交换状态,用这样的数据结构来保证所谓的面向连接的特性。
- TCP提供可靠的交付。通过TCP 连接传输的数据 无差错、不丢失、不重复、并且按序到达。
- TCP 是面向字节流的。发送的时候是一个流没头没尾。IP 包可不是一个流,而是一个个的 IP 包。之所以变成了流,这也是 TCP 自己的状态维护做的事情。
- TCP可以有拥塞控制。它意识到包丢弃了或者网络的环境不好了,就会根据情况调整自己的行为,看看是不是发快了,要不要发慢点。
- TCP 是一个有状态的服务 里面精确地记着发送了没有,接收到没有,发送到哪个了,应该接收哪个了,错一点儿都不行。
- UDP 是无连接的 UDP 继承了 IP 包的特性 不保证不丢失,不保证按顺序到达。
- UDP 继承了IP 特性, 基于数据报的 一个一个的发,一个一个的收、
- UDP 是无状态服务
如果 MAC 层定义了本地局域网的传输行为,IP 层定义了整个网络端到端的传输行为,这两层基本定义了这样的基因:网络传输是以包为单位的,二层叫帧,网络层叫包,传输层叫段。我们笼统地称为包。包单独传输,自行选路,在不同的设备封装解封装,不保证到达。基于这个基因,生下来的孩子 UDP 完全继承了这些特性,几乎没有自己的思想。
MAC地址和IP地址的关系
- .局域网内ip地址是动态分配(DHCP),假如我的电脑ip地址是192.168.1.123 如果我下线了 可能ip 就分配了另一个电脑。ip和设备并不是总是对应的,这对通信就产生了问题,但是MAC地址是不同的 MAC 地址和设备是一一对应并且全球唯一的。局域网使用MAC地址通信是没有问题的。
- 历史遗留问题:早期的以太网只有交换机,没有路由器以太网通过MAC地址通信。后来才有了互联网,为了兼容原本的模式采用了IP+MAC 地址通信方式 。所以现有MAC地址后有IP,IP的提出主要是因为MAC地址本身的缺陷。因为MAC地址是硬件提供商写在网卡中的,MAC地址的唯一但不能表明用户在互联网中的位置 但IP地址解决了这个问题 因为IP地址是网络提供商提供的 所以在你在哪个位置都是知道的。
- IP 地址是有远程定位的功能,MAC地址 是没有远程定位的功能,只能通过本地ARP 广播的方式找到。
- 动态主机配置协议(DHCP)自动配置的协议,也就是称动态主机配置协议(Dynamic Host Configuration Protocol),简称 DHCP。如果是数据中心里面的服务器,IP 一旦配置好,基本不会变,这就相当于买房自己装修。DHCP 的方式就相当于租房。你不用装修,都是帮你配置好的。你暂时用一下,用完退租就可以了。
网友评论