一、计算机网络常见知识点
- 主机:计算机网络上任何一种能够连接网络的设备都称为主机或者说端系统。
- 通信链路:通信链路是由物理链路连接到一起组成的一种物理通路。
- 传输速率:单位是bit/s 或者 bps,原来度量不同链路从一个端系统到另外端系统传输数据的速率、
- 分组:当一台端系统向另外一台端系统发送数据时,通常会将数据进行分片,然后为每段加上首部字节,从而形成计算机的作业术语:分组。
- 路由器:它与链路层交换机一样,都是一种交换机,主要用于转发数据的目的。
- 路径:一个分组所经历一系列通信链路和分组交换机称为通过这个网络的路径。
- 因特网服务商:也叫ISP,网络运营商。(移动、电信、联通)
- 网络协议:网络协议是计算机网络中进行数据交换而建立的规则。
- IP:网际协议,它规定了路由器和端系统中间发送而接收的分组格式。
- TCP/IP四层结构:
数据链路层,它包含了OSI模型的物理层和数据链路层,把电脑连接起来。
网络层,也叫做IP层,处理IP数据包的传输、路由,建立主机间的通信。
传输层,就是为两台主机设备提供端到端的通信。
应用层,包含OSI的会话层、表示层和应用层,提供了一些常用的协议规范,比如FTP、SMPT、HTTP等。 - OSI七层模型:
物理层:通过网线、光缆等这种物理方式将电脑连接起来。传递的数据是比特流,0101010100。
数据链路层:首先,把比特流封装成数据帧的格式,对0、1进行分组。电脑连接起来之后,数据都经过网卡来传输,而网卡上定义了全世界唯一的MAC地址。然后再通过广播的形式向局域网内所有电脑发送数据,再根据数据中MAC地址和自身对比判断是否是发给自己的。
网络层:广播的形式太低效,为了区分哪些MAC地址属于同一个子网,网络层定义了IP和子网掩码,通过对IP和子网掩码进行与运算就知道是否是同一个子网,再通过路由器和交换机进行传输。IP协议属于网络层的协议。
传输层:有了网络层的MAC+IP地址之后,为了确定数据包是从哪个进程发送过来的,就需要端口号,通过端口来建立通信,比如TCP和UDP属于这一层的协议。
会话层:负责建立和断开连接
表示层:为了使得数据能够被其他的计算机理解,再次将数据转换成另外一种格式,比如文字、视频、图片等。
应用层:最高层,面对用户,提供计算机网络与最终呈现给用户的界面
- 套接字接口:指的是 socket 接口,这个接口规定了端系统之间通过因特网进行数据交换的方式。
- 客户端:在客户-服务器架构中扮演请求方的角色,通常是PC,智能手机等端系统。
- 时延:指一个报文或者分组从网络一端传送到另一端所需要的时间,时延分类有:发送时延,传播时延,处理时延,排队时延。总时延=发送时延+传播时延+处理时延+排队时延
- 丢包:在计算机网络中指的是分组出现丢失的现象。
- 吞吐量:吞吐量在计算机网络中指的是单位时间内成功传输数据的数量。
- 报文:通常指的是应用层的分组。
- IP地址:IP地址就是网际协议地址,在互联网中唯一标识主机的一种地址,每一台入网的设备都会有一个IP地址。
- 端口号:在同一台主机内,端口号用于标识不同应用程序进程。
- 多路复用:在发送方,从不同的套接字收集数据块然后为数据块封装上首部信息从而生成报文段,然后将报文段传递给网络层的过程为多路复用。
- 三次握手:TCP 连接的建立需要经过三个报文段的发送,这种连接的建立过程被称为三次握手。
建立连接前server端需要监听端口,所以初始状态是LISTEN。
1.client端建立连接,发送一个SYN同步包,发送之后状态变成SYN_SENT
2.server端收到SYN之后,同意建立连接,返回一个ACK响应,同时也会给client发送一个SYN包,发送完成之后状态变为SYN_RCVD
3.client端收到server的ACK之后,状态变为ESTABLISHED,返回ACK给server端。server收到之后状态也变为ESTABLISHED,连接建立完成。
- 四次挥手:TCP 断开链接需要经过四个报文段的发送,这种断开过程是四次挥手。
四次挥手的过程:
1.client端向server发送FIN包,进入FIN_WAIT_1状态,这代表client端已经没有数据要发送了
2.server端收到之后,返回一个ACK,进入CLOSE_WAIT等待关闭的状态,因为server端可能还有没有发送完成的数据
等到server端数据都发送完毕之后,server端就向client发送FIN,进入LAST_ACK状态
3.client收到ACK之后,进入TIME_WAIT的状态,同时回复ACK,server收到之后直接进入CLOSED状态,连接关闭。但是client要等待2MSL(报文最大生存时间)的时间,才会进入CLOSED状态。