计算机网络
URL
URL(Uniform Resource Locator)即统一资源定位符。应用程序通过 URL 才能定位到资源所处的位置,URL 相当于一个人的住址。它由 8 部分组成:
- 协议方案(scheme)。如 http,ftp;
- 登录信息(user和password);
- 主机(host);
- 端口(port);
- 路径(path);
- 查询字符串(query);
- 片段(frag)。锚点,如 #frag1;
OSI 七层模型
- 应用层,所有能产生网络流量的程序;
- 表示层,在传输之前是否进行加密或者压缩处理,二进制、ASCII;
- 会话层,查木马、
netstat -n; - 传输层,可靠传输、流量控制、不可靠传输,主要是 tcp、udp;
- 网络层,负责选择最佳路径,规划 IP 地址;
- 数据链路层,帧的开始与结束、透明传输、差错校验;
- 物理层,接口标准、电器标准、如何在物理链路上传输更快的速度;
计算机网络的性能
1. 速率
速率是连接在计算机网络上的主机在数字信道上传送数据位数的速率,也称 data rate 或 bit rate。
单位是 b/s、kb/s、Mb/s、Gb/s。
1b 就是 1 比特(byte),1比特等于8个字节(bit)
2. 带宽
数据通信领域中数字信道所能传送的最高数据率。单位也是 b/s、kb/s、Mb/s、Gb/s。
3. 吞吐量
单位时间内通过某个网络的数据量。单位也是 b/s、kb/s、Mb/s、Gb/s。
4. 时延
时延有四个:发送时延、传播时延、处理时延、排队时延。
- 发送时延 = 数据块长度(比特)/ 信道带宽(比特/秒)
- 时延带宽积 = 传播时延 * 带宽
5. 往返时间
从发送方发送数据开始,到发送方收到接收方确认。可以使用 ping 命令还测试往返时间。
6. 网络利用率
- 信道利用率 = 有数据通过时间 / (有 + 无)数据通过的时间
- 网络利用率 = 信道利用率加权平均值
D = D0 / (1 - U)。其中:D0 表示网络空闲时的延时;D表示网络当前的时延;U 表示信道利用率。
网线
物理层解决的是如何在各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒介。物理层的主要任务是:确定传输媒体的接口的一些特性。
- 直通线:应用最广泛,双绞线的夹线顺序两边一致,这种类型的以太网电缆用来实现以下连接:
- 主机到交换机或集线器
- 路由器到交换机或集线器
- 交叉线(绞线的夹线顺序两边不一致,通常两种相同设备使用交叉线)
- 交换机到交换机
- 集线器到集线器
- 主机到主机
- 集线器到交换机
- 路由器直连到主机
网关
网关是局域网连接广域网的出口(一个广域网和一个局域网相连需要网关),它可以工作在 OSI 模型网络层以上的不同层次。
TCP 三握手
客户端和服务器端会先经历三次握手,然后建立 TCP 连接,具体过程如下。
- 客户端发送一个携带 SYN 标志位 的包,请求建立连接;
- 服务器响应一个携带 SYN 和 ACK 标志位的包(SYN + ACK),同意建立连接;
- 客户端再发送一个携带 ACK 标志位的包,表示连接成功,开始进行数据传输。
TCP 四次挥手
当要断开TCP连接时,通信两端就会进行4次挥手的操作。由于连接是双向的,所以客户端和服务器都要发送FIN标志位的包,才算彻底断开了连接,具体过程如下所列。
- 客户端发送一个携带FIN标志位的包,请求断开连接。
- 服务器响应一个携带ACK标志位的包,同意客户端断开连接。
- 服务器再发送一个携带FIN标志位的包,请求断开连接。
- 客户端最后发送一个携带ACK标志位的包,同意服务器断开连接。
TCP 可靠传输
当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当 TCP 收到发自 TCP 连接另一端的数据时,它将发送一个确认。TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段,同时,不确认收到此报文段。由于 TCP 报文段作为 IP 数据报来传输,而·数据报的到达可能会失序,因此,TCP 报文段的到达也可能会失序。因此,TCP 将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层,这就需要对报文进行编号,以确定报文的顺序。
TCP 与 UDP 的区别
- TCP(传输控制协议):面向连接的、可靠的、基于字节流的传输协议;
- UDP(用户数据报协议):面向非连接的、不可靠的、基于数据报的传输层协议;
面向连接:有固定的路由通道;而非连接并没有固定的通道;
基于字节流:TCP 有次序性,发来的数据包可能会有联系,对端收到后,会将这些数据包按顺序拼接起来(比如文件传输),因此是流式的;而基于数据报表示每个数据包基本都是相互独立的,每个数据包几乎没有什么联系(比如 QQ 发一条文字信息)。
路由器如何转发 IP 报文
路由器转发 IP 报文的依据是路由表,通过匹配路由表里的路由项来实现对 IP 报文的转发。当路由器收到一个IP报文时,将报文中的目的 IP 地址提取出来,然后与路由表中路由表项包含的目的地址进行比较。如果与某路由项中的目的地址相同,则认为与此路由项匹配;如果没有路由项能够匹配,则丢弃该 IP 报文。