作者:青春进行时2502857343 | 来源:互联网 | 2023-10-11 10:17
不同设备,主机间的通信需要用到网络通信协议。一个设备进程通信用管道,消息队列,内核中的消息链表。共享内存。用户态共享空间快、信号量互斥和同步。信号异常Linuxctrl+c终止信号
不同设备,主机间的通信需要用到网络通信协议。
一个设备进程通信 用管道,消息队列, 内核中的消息链表。共享内存。用户态
共享空间快、信号量 互斥和同步。 信号 异常Linux ctrl+c 终止信号。
一、应用层
比如 HTTP、FTP、Telnet、DNS、SMTP等。
应用层只需要专注于为用户提供应用功能
传输层
应用层的数据包会传给传输层,传输层(Transport Layer)是为应用层提供网络支持的。
TCP 的全称叫传输控制协议(Transmission Control Protocol),大部分应用使用的正是 TCP 传输层协议,比如 HTTP 应用层协议。TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞控制等,这些都是为了保证数据包能可靠地传输给对方。
UDP 相对来说就很简单,简单到只负责发送数据包,不保证数据包是否能抵达对方,但它实时性相对更好,传输效率也高。当然,UDP 也可以实现可靠传输,把 TCP 的特性在应用层上实现就可以,不过要实现一个商用的可靠 UDP 传输协议,也不是一件简单的事情。
网络层
最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文。
设备多 ,如何用ip地址寻址呢?
ip地址分成网络号和主机号。
一个是网络号,负责标识该 IP 地址是属于哪个「子网」的;
一个是主机号,负责标识同一「子网」下的不同主机;
这需要配合子网掩码才能算出 IP 地址 的网络号和主机号。按位与运算
网络接口层
生成了 IP 头部之后,接下来要交给网络接口层(Link Layer)在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上。
IP 头部中的接收方 IP 地址表示网络包的目的地
电脑上的以太网接口,Wi-Fi接口,以太网交换机、路由器上的千兆,万兆以太网口,还有网线,它们都是以太网的组成部分
以太网进行通讯要用到 MAC 地址。
网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包
输入网址到网页显示,期间发生了什么?
孤身小弟http。解析url,发送http报文
真实地址查询DNS ——查询服务器域名对应的 IP 地址,因为委托操作系统发送消息时,必须提供通信对象的 IP 地址。
浏览器会先看自身有没有对这个域名的缓存,如果有,就直接返回,如果没有,就去问操作系统,操作系统也会去看自己的缓存,如果有,就直接返回,如果没有,再去 hosts 文件看,也没有,才会去问「本地 DNS 服务器」。
源端口号,目的端口号,序号,确认号,状态位。窗口大小。