IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 测开-计算机网络 -> 正文阅读

[网络协议]测开-计算机网络

面试高频考点:

近段时间从网上收集的。

1.HTTP长连接、短连接究竟是什么?

2.

计算机网络基础知识

计算机网络知识

计算机网络的概念:
计算机网络是一个将分散的(地理位置不同的)、具有独立功能的计算机系统,通过通信设备(路由等)与线路(光纤等)连接起来,由功能完善的软件实现资源共享和信息传递的系统。
计算机网络是一些互联的、自治的计算机系统的集合。

计算机网络的组成:
从组成部分:由硬件、软件和协议三大部分组成,缺一不可。
从工作方式:可分为边缘部分和核心部分。
? 边缘部分由所有连接到因特网上、供用户直接使用的主机组成,用来进行通信(如传输数据、音频或视频)和资源共享
? 核心部分由大量的网络和连接这些网络的路由器组成,它为边缘部分提供连通性和交换服务。
从功能组成:由通信子网和资源子网组成
在这里插入图片描述

计算机网络的功能:
(1)数据通信
(2)资源共享
(3)分布式处理
(4)提高可靠性
(5)负载均衡

1. 网络层次划分

在这里插入图片描述

(1)应用层
为操作系统或网络应用程序提供访问网络服务的接口。
会话层、表示层和应用层重点:
1> 数据传输基本单位为报文、消息(message)
2> 包含的主要协议:
应用层: FTP 、 DNS 、 Telnet 、 SMTP 、 HTTP 、 WWW 、 NFS
FTP(文件传送协议):控制端口TCP21端口与数据端口TCP20端口
Telnet(远程登录协议):TCP23、
DNS(域名解析协议):UDP 53、(域名(主句名)映射至IP地址)
SMTP(邮件传送协议):TCP25、
POP3协议(邮局协议):TCP110、
HTTP协议(Hyper Text Transfer Protocol):TCP80
HTTPs协议(Hyper Text Transfer Protocol secure): TCP 443
NFS网络文件系统:用户和程序可以像访问本地文件一样访问远端系统上的文件。
(2)表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
表示层: JPEG 、 MPEG 、 ASII
(3)会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
会话层: NFS 、 SQL 、 NETBIOS 、 RPC

(4)传输层(Transport Layer)
端到端(进程之间的逻辑通信)负责将上层数据分段并提供端到端的、可靠的或不可靠的传输,还要处理端到端的差错控制和流量控制问题。基本数据单位称为段或报文(segment)。(网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。)
重要知识点:
1> 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
2> 包含的主要协议:
TCP协议(Transmission Control Protocol,传输控制协议)报文段(segment)
UDP协议(User Datagram Protocol,用户数据报协议);用户数据报
SPX协议
3> 重要设备:网关
复用:应用层所有的应用进程都可以通过传输层再传输到网络层;
分用:传输层从网络层接收到数据后分别交付给指明的应用进程。
在这里插入图片描述HTTPS-443

(5)网络层(Network Layer)
目的是实现两个端系统(主机到主机)之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等
重要知识点:
1> 网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
 2> 基本数据单位为IP数据报(packet)或者分组(datagram);
 3> 包含的主要协议:
  IP协议(Internet Protocol,因特网互联协议):提供不可靠、无连接的传送服务
  ICMP协议(Internet Control Message Protocol,因特网控制报文协议);
  ARP协议(Address Resolution Protocol,地址解析协议);
  RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。
OSPF 、 IPX 、 RIP 、 IGRP(网际组管理协议)
 4> 重要的设备:路由器。
(6)数据链路层(Data Link Layer)
将源自网络层的数据可靠地传输到相邻节点的目标机网络层。
该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
数据链路层一般都提供3种基本服务,即无确认的无连接服务、有确认的无连接服务、有确认的面向连接服务。

重要知识点:
1> 数据链路层为网络层提供可靠的数据传输;
2> 基本数据单位为帧(frame);
3> 主要的协议:以太网协议-CSMA/CD协议;
FR 、 HDLC 、 VLAN 、 MAC

点对点协议PPP,有两种认证方式,PAP(口令鉴别协议)方式和CHAP(口令握手鉴别协议)方式。PAP只需进行一次认证,并且只在链路初始状态时执行。而且用户名与密码的传送方式是明文的。CHAP采用周期性的验证,并且认证内容经过MD5加密后再传送,安全性要比PAP高。
4> 两个重要设备名称:网桥和交换机
透明网桥转发表的建立是基于源MAC地址,转发时是基于目的MAC地址

数据链路层
主要功能(前五个为重点):用于两个设备(同一种数据链路节点)之间进行信息传递。
1.成帧(帧同步):为了避免接收到的位数量以及数值发生异常。
2. 差错控制:为了确保数据通信的准确,降低错误发生的几率。
3. 流量控制:了确保数据通信的有序进行,避免通信过程中不会出现接收方来不及接收而造成数据丢失。
4. 链路控制:包括数据链路的建立、链路的维持和释放,
5. MAC寻址:寻找地址是计算机网卡的MAC地址,与寻址ip地址不同
6. 区分数据和控制信息:在许多情况下,数据和控制信息处于同一帧中
7. 透明传输:可以让无论是哪种比特组合的数据,都可以在数据链路上进行有效传输。
三个基本问题:
1、封装成帧(在一段数据的前后分别添加首部和尾部,这样就构成了一个帧)
2、透明传输(发送端的数据链路层在数据中出现控制字符”SOH”和”EOT”的前面插入一个转义字符”ESC”(其十六进制编码是1B)。而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充或字符填充。)
3、差错检测(循环冗余检验CRC)

数据链路层使用的信道:
(1)点对点信道:点对点协议PPP
(2)广播信道:CSMA/CD协议

集线器HUB和交换机的区别是: 交换机每个端口独享带宽,集线器每个端口共享带宽.以一个10M的HUB和一个10M的交换机为例,HUB的每个端口带宽(正在使用)之和等于10M.而交换机是每个端口都是10M.因而HUB的传输过程数据产生碰撞较多,用户越多,性能越差,而交换机就不存在这个问题.
集线器不管有多少个端口,所有端口都共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待;只能工作在半双工模式下。交换机每个端口都有一条独占的带宽,当两个端口工作时并不影响其他端口的工作,交换机可以工作在半双工模式下也可以工作在全双工模式下。

(7)物理层(Physical Layer)
该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器(hub 对接收到的信号进行再生整形放大,扩大网络的传输距离;共享分配带宽)。物理层协议的数据单元是比特(bit)

该层的主要任务是确定与传输媒体的接?的?些特性(机械特性、电?特性、功能特性,过程特性)。完成传输方式的转换。
物理层: RJ45 、 CLOCK 、 IEEE802.3 (中继器,集线器,网关

香农公式:C=W log2(1+S/N) (bit/s)

2.IP地址

1)网络地址
IP地址由网络号(包括子网号,代表所连接到的网络)和主机号(代表该主机或路由器)组成,网络地址的主机号为全0,网络地址代表着整个网络。网络号/主机号
IP地址=={<网络号> ,<主机号>}

2)广播地址
广播地址通常称为直接广播地址,是为了区分受限广播地址。
广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。
求解广播地址的方法
(一)如果没有/网络号数,就先判断IP属于哪一类:然后主机位全置1
A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;
B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;
C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。
D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);
E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。
注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。
(二)如果有/17,那么很简单,“17”表示前17位为网络标识,剩下的15位就为主机标识,这15位全置1,就是广播地址。
4)255.255.255.255
该IP地址指的是受限的(本地的)广播地址。受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。
5)0.0.0.0
常用于寻找自己的IP地址。如在我们的RARP,BOOTP和DHCP协议中,若某个未知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组。
6)回环地址
127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1。
7)A、B、C类私有地址
私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。
A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

A类地址有效个数:2^7-2
B类地址有效个数:2^14-1
C类地址有效个数:2^21-1

3. 子网掩码及网络划分

(1)什么是子网掩码?
子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位
子网掩码的计算:
对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。
对于需要将其高位主机位再作为划分出的子网号,剩下的是每个子网的主机号:

1)利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。
(1) 将子网数目转化为二进制来表示;
如欲将B类IP地址168.195.0.0划分成27个子网:27=11011;
(2) 取得该二进制的位数,为N;
该二进制为五位数,N = 5
(3) 取得该IP地址的类子网掩码,将其主机地址部分的前N位置1即得出该IP地址划分子网的子网掩码。
将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到 255.255.248.0

2)利用主机数来计算
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
(1) 将主机数目转化为二进制来表示;
700=1010111100
(2) 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;
该二进制为十位数,N=10;
(3) 使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。
将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255.255.255.255,然后再从后向前将后 10位置0,即为:11111111.11111111.11111100.00000000,即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子网掩码。

3)根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。
比如一个子网有10台主机,那么对于这个子网需要的IP地址是:
10+1+1+1=13
注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。
因为13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。
如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17,17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。
(2)子网划分
划分子网的方法:从网络的主机号借用若干为作为子网号,不改变原来的网络号。
IP地址=={<网络号>,<子网号>,<主机号>}
(3)无分类编址CIDR(构造超网)
特点:(1)CIDR消除A B C 类地址以及划分子网的概念,CIDR将32位IP地址划分为{网络前缀,主机号}
(2)CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”

4. ARP/RARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址MAC的一个TCP/IP协议。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等
逆地址解析协议,即RARP,功能和ARP协议相对,将局域网中某个主机的物理地址转换为IP地址。
MAC(Medium/Media Access Control)地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。

5.路由选择协议

常见的路由选择协议有:
内部网关协议(IGP):RIP协议、OSPF协议
外部网关协议(BGP):
? RIP距离矢量路由协议:距离矢量是指以距离和方向构成的矢量来通告路由信息。距离按跳数等度量来定义,方向则是下一跳的路由器或送出接口。使用贝尔曼-福特 (Bellman-Ford) 算法来确定最佳路径,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。仅与相邻路由器交换;交换自己的路由表;30s交换一次。
? OSPF协议 :Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。1)向本自治系统中所有路由器发送信息。(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。(3)只有在链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息。
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。端口179,用于在非核心的相邻网关之间传输信息。

路由表中的每一个路由项具有五个属性,在此我将它们分为四个部分:
1、目的网络地址(Network Destination)、网络掩码(Netmask):
2、网关(Gateway,又称为下一跳地址)
3、接口(Interface):
4、跃点数(Metric):
路由表选择路由的路径,转发表选择输出端口。

6.ICMP因特网控制报文协议

ICMP协议的功能:

  1. 确认IP包是否成功到达目标地址
  2. 通知在发送过程中IP包被丢弃的原因
    ICMP分为两类报文:差错报告报文-通知出错原因 ;询问报文-用于诊断查询

ping命令的功能
(1)能验证网络的连通性
(2)会统计响应时间和TTL(IP包中的Time To Live,生存周期)
那么如何验证的呢?
(1)ping命令会先发送一个 ICMP Echo Request给对端
(2)对端接收到之后, 会返回一个ICMP Echo Reply
(3)若没有返回,就是超时了,会认为指定的网络地址不存在。

问题:
telnet是23端口,ssh是22端口,那么ping是什么端口?
答:ping命令是基于ICMP,是在网络层。
而端口号,是传输层的内容。所以在ICMP中根本就不关注端口号这样的信息。

Traceroute命令获取到目的主机的路由信息
traceroute也是基于ICMP协议实现的。
功能:打印出可执行程序主机,一直到目标主机之前经历多少路由器。

7. TCP/IP协议

TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
(1)IP协议
IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏 ,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
由首部和数据两部分组成.首部的前一部分是固定长度,共 20 字节,是所有IP数据报必须具有的.在首部的固定部分的后面是一些可选字段(max40字节),其长度是可变的.
**生存时间:**占 8位,生存时间字段常用的英文缩写是TTL(Time To Live),其表明数据报在网络中的寿命.由发出数据报的源点设置这个字段.其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。是以秒作为 TTL的单位,每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间.若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1.当 TTL值为 0时,就丢弃这个数据报.
源地址:占32位
目的地址:占32位
标识 (Identification): 占 16位.IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段.但这个"标识"并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题.当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中.相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报.(例题p130)
IP数据包的最大长度是64K字节(65535),因为在IP包头中用2个字节描述报文长度,2个字节所能表达的最大数字就是65535
在这里插入图片描述

(2)TCP协议
TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。TCP提供的是一种可靠的数据流服务,采用"带重传的肯定确认"技术来实现传输的可靠性。TCP还采用一种称为"滑动窗口"的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。20字节的固定首部。
TCP的重要问题:滑动窗口,流量控制,拥塞控制,连接管理。
TCP为点到点,TCP连接的端点就叫套接字(socket)或插口,每一条TCP连接都只能有两个端点。
套接字=(IP地址:端口号)
UDP套接字:一个二元组,(目的IP地址,目的端口号)
TCP套接字:一个四元组,(源IP地址,源端口号,目的IP地址,目的端口号)
在这里插入图片描述
在这里插入图片描述

TCP协议的三次握手和四次挥手:
在这里插入图片描述
注:seq:"sequance"序列号;ack:"acknowledge"确认号;SYN:"synchronize"请求同步标志;;ACK:“acknowledge"确认标志”;FIN:"Finally"结束标志。

在这里插入图片描述

为什么要三次握手?
为了实现可靠数据传输, TCP 协议的通信双方, 都必须维护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤
如果只是两次握手, 至多只有连接发起方的起始序列号能被确认, 另一方选择的序列号则得不到确认

在这里插入图片描述

为什么会有TIME_WAIT状态?
-1.客户端发送给服务端回执后,有可能这个回执报文在传输途中丢失等原因,服务端并没有收到,此时服务端会再次向客户端发送FIN=1的断开请求报文,如果客户端没有等待2*MSL时间而直接进入了CLOSED状态,客户端就会收不到服务端再次发送的断开连接的请求报文,导致服务端无法进入CLOSED状态;
-2.等待一段时间是为了让本连接持续时间内所产生的所有报文都从网络中消失,使得下一个新的连接不会出现旧的连接请求报文。

为什么是四次挥手而不是三次或者五次?
第二次挥手和第三次挥手都是服务端向客户端发送报文,第二次挥手是服务端收到了客户端的断开请求,通知客户端俺收到了,此时虽然客户端没有数据向服务端发送了,但不代表服务端也没有数据向客户端发送,因为服务端要把剩余还没有发送的报文发送完毕再断开连接;第三次挥手是服务端数据全部发送完毕,向客户端发送断开请求报文(FIN=1)。

如果是三次挥手,即把服务端向客户端发送报文的第二次挥手和第三次挥手合为一次,会造成服务端发送了回执后立刻又发送断开请求,造成服务端有数据没有全部发送至客户端,因此必须将第二次挥手和第三次挥手分开;五次挥手则完全没必要,多此一举。

TCP如何保证数据传输的可靠性?

  1. 序列号,ACK信号:发送方按照顺序给要发送的数据包的每个字节都标上编号。接收方接收到发送方的数据包之后,回传一个ACK信号,标识下一个需求的数据包初始字节编号。
  2. 超时重发:在等待接收方回传的ACK信号超时后,发送方重发数据包。一旦开始重传,下一次等待的时间间隔指数增长,重发一定次数后还是收不到ACK信号,将强制终止连接。【B?】
  3. TCP的连接管理:建立连接的三次握手和断开连接的四次挥手。
  4. 以段为单位发送数据包:在建立TCP连接的同时,两端协商发送数据包的单位,称为“最大消息长度”:MSS。 [TCP数据(MSS字节)][TCP首部(20字节)][IP首部(20字节)]
  5. 滑动窗口:以段为单位发送数据包,每发送一个数据包需要等待一个ACK信号,当数据包往返时间越长效率越低。滑动窗口中窗口前端为已发送但为收到ACK的数据,后端为待发送数据。发送端一次发送多个数据,接收端回传收到的连续数据的ACK信号,缓存缺失数据之后的数据包(保持顺序)。发送端当收到ACK信号时,窗口向前依次移动,直到遇到有数据未确认时停止。一段时间后启动超时重传,接收端若收到缺失数据,则和缓存数据一起发送ACK信号,否则,移除缓存数据。【A?】
  6. 流量控制:TCP首部有一个字段来通知窗口的大小,接收端通过设置来主动控制传输流量。
  7. 拥塞控制:发送端通过拥塞窗口主动控制传输流量。慢启动:防止双方通信刚开始就传送大量数据包,发送端拥塞窗口初始设置为1MSS,每接受一个ACK信号,窗口扩大为两倍。发送数据时,取拥塞窗口和滑动窗口的较小值。同时设定一个慢启动阈值,当拥塞窗口大小超过阈值时,改为线性增长,直到网络拥塞。拥塞时将慢启动阈值设置为当前窗口的的一半,并将拥塞窗口的值设置为1,然后再次重复操作。
    拓展:
    8.SACK选择确认字段:
    TCP收到乱序数据后会将其放到乱序序列中,然后发送重复ACK给对端。对端如果收到多个重复的ACK,认为发生丢包,TCP会重传最后确认的包开始的后续包。这样原先已经正确传输的包,可能会重复发送,降低了TCP性能。为改善这种情况,发展出SACK技术,使用SACK选项可以告知发包方收到了哪些数据,发包方收到这些信息后就会知道哪些数据丢失,然后立即重传丢失的部分.【D?】
    那么紧急指针有什么用呢?
    当发送端把紧急信息放到TCP报文中进行传输的时候,接受端识别URG置1,就需要通过紧急指针优先访问紧急数据。【C?】
    TCP提供了“紧急方式(urgentmode)”,它使连接的一端可以告诉另连接的一端有些 “紧急数据”已经被放置在数据流中。紧急数据的处理方式由接收方决定。

(3)TCP可靠传输的工作原理-停止等待&连续的ARQ
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

以上就是停止等待协议中所出现的所有的可能情况。也一一解决。像这种可靠的传输协议通常称为自动重传请求ARQ(Automatic Repeat reQuest)。意思就是,重传的请求是自动进行的,不需要接受方请求发送某一个丢失或出错的消息。

在这里插入图片描述
在这里插入图片描述

1、自动重传请求ARQ协议
优点:简单
缺点:信道利用率低
2、连续的ARQ协议

优点:信道利用率高,容易实现,即使确认丢失,也不必重传。
缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。
比如:发送方发送了5条消息,中间第三条丢失(3号),这时接收方只能对前两个发送确认。发送方无法知道后三个分组的下落,而只好把后三个全部重传一次。这也叫Go-Back-N(回退N),表示需要退回来重传已经发送过的N个消息。

什么是 SYN 攻击?如何避免 SYN 攻击?
TCP 连接建立是需要三次握手,假设攻击者短时间伪造不同 IP 地址的 SYN 报文,服务端每接收到一个 SYN 报文,就进入SYN_RCVD 状态,但服务端发送出去的 ACK + SYN 报文,无法得到未知 IP 主机的 ACK 应答,久而久之就会占满服务端的 SYN 接收队列(未连接队列),使得服务器不能为正常用户服务。
避免 SYN 攻击方式一:通过修改 Linux 内核参数,控制队列大小和当队列满时应做什么处理。
当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。控制该队列的最大值如下参数:net.core.netdev_max_backlog
SYN_RCVD 状态连接的最大个数:net.ipv4.tcp_max_syn_backlog
超出处理能时,对新的 SYN 直接回报 RST,丢弃连接:net.ipv4.tcp_abort_on_overflow
避免 SYN 攻击方式二
当 「 SYN 队列」满之后,后续服务器收到 SYN 包,不进入「 SYN 队列」;
计算出一个 cookie 值,再以 SYN + ACK 中的「序列号」返回客户端,
服务端接收到客户端的应答报文时,服务器会检查这个 ACK 包的合法性。如果合法,直接放入到「 Accept 队列」。
最后应用通过调用 accpet() socket 接口,从「 Accept 队列」取出的连接。

如何避免 SYN 攻击?
1降低SYN timeout时间 使得服务器在没收到确认报文后尽快释放半连接的占用
2采用SYN cookie设置 给每一个请求连接的ip地址分配一个cookie,短时间内如果连续收到某个IP的重复的SYN报文,就认定收到了攻击,以后会自动丢弃该ip地址传送过来的包

8.IPv6

https://blog.csdn.net/fuyuande/article/details/81252936
IP地址是固定长度的,IPv4是32位,IPv6是128位,而域名是变长的

9. UDP协议

UDP用户数据报协议,是面向无连接的通讯协议,面向报文,不改变应用层的报文长度,没有拥塞控制UDP支持一对一,一对多,多对一,多对多通信,由于通讯不需要连接,所以可以实现广播发送。UDP本身不提供可靠性,可以在应用层(最好是会话层)上加一些ACK之类的可靠性机制。不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询—应答的服务,例如NFS。
每个UDP报文分UDP报头和UDP数据区两部分。报头由四个2字节的字段组成,分别说明该报文的源端口、目的端口、报文长度以及校验和(有错就丢)。
校验和:长度2字节,用于UDP的差错检测,防止UDP报文出错,同时伪首部参与计算,避免UDP用户数据报传送到错误的目的地。UDP的首部,数据部分,伪首部都会参与检验和的计算,各字段是按照16比特为单位进行计算的,因此数据部分是要保证是16比特的倍数,不够用0填充。
使用UDP协议包括:TFTP(简单文件传输协议69)、SNMP(简单网络管理协议161)、DNS(域名解析协议53)、NFS、BOOTP。
TCP 与 UDP 的区别:TCP是面向连接的,可靠的字节流服务;UDP是面向无连接的,不可靠的数据报服务,需要使用套接字
在这里插入图片描述

10. DNS协议

DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。
一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系
如果新计算机接入网络,将这个信息注册到数据库中
用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址

域名系统必须要保持唯一性。
域名服务主要是基于UDP实现的,服务器的端口号为53。
在这里插入图片描述

域名解析过程
域名解析总体可分为一下过程:
(1) 输入域名后, 先查找自己主机对应的域名服务器,域名服务器先查找自己的数据库中的数据.
(2) 如果没有, 就向上级域名服务器进行查找, 依次类推
(3) 最多回溯到根域名服务器, 肯定能找到这个域名的IP地址
(4) 域名服务器自身也会进行一些缓存, 把曾经访问过的域名和对应的IP地址缓存起来, 可以加速查找过程
具体可描述如下:

  1. 主机先向本地域名服务器进行递归查询
  2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
  3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址
  4. 本地域名服务器向顶级域名服务器进行查询
  5. 顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址
  6. 本地域名服务器向权限服务器进行查询
  7. 权限服务器告诉本地域名服务器所查询的主机的IP地址
  8. 本地域名服务器最后把查询结果告诉主机
    上文提出了两个概念:递归查询和迭代查询
    1)递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
    (2)迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询

DNS 服务的常见资源记录类型:A记录(主机地址)、CNAME记录(别名)、MX记录(邮件主机)、NS记录(名称服务器)、SOA记录(起始授权机构)、PTR记录(IP反向解析)、SRV记录(MS DNS服务器的活动目录)。

11. NAT协议 MPLS协议

NAT网络地址转换(Network Address Translation)属接入广域网(WAN)技术,主要用于实现位于内部网络的主机访问外部网络的功能,是一种将私有(保留)地址转化为合法IP地址的转换技术,多个私网用户可以共用一个公网地址。它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
NAT是将IP数据报文头部中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。
NAT一般部署在连接内网和外网的网关设备上。网关上还会创建一个NAT映射表,以便判断从公网收到的报文应该发往的私网目的地址。
(1)静态NAT:实现了私有地址和公有地址的一对一映射,
使用环境:如果希望一台主机优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时,可以使用静态NAT。
缺点:一个公网IP只会分配给唯一且固定的内网主机。不节省IP地址。
(2)动态NAT:基于地址池来实现私有地址和公有地址的转换。
过程分析:当内部主机A和主机B需要与公网中的目的主机通信时,网关RTA会从配置的公网地址池中选择一个未使用的公网地址与之做映射。每台主机都会分配到地址池中的一个唯一地址。当不需要此连接时,对应的地址映射将会被删除,公网地址也会被恢复到地址池中待用。当网关收到回复报文后,会根据之前的映射再次进行转换之后转发给对应主机。
缺点:动态NAT地址池中的地址用尽以后,只能等待被占用的公用IP被释放后,其他主机才能使用它来访问公网。
(3)NAPT—网络地址端口转换:允许多个内部地址映射到同一个公有地址的不同端口。
过程分析:RTA收到一个私网主机发送的报文,源IP地址是192.168.1.1,源端口号是1025,目的IP地址是100.1.1.1,目的端口是80。RTA会从配置的公网地址池中选择一个空闲的公网IP地址和端口号,并建立相应的NAPT表项。这些NAPT表项指定了报文的私网IP地址和端口号与公网IP地址和端口号的映射关系。之后,RTA将报文的源IP地址和端口号转换成公网地址200.10.10.1和端口号2843,并转发报文到公网。当网关RTA收到回复报文后,会根据之前的映射表再次进行转换之后转发给主机A。主机B同理。

MPLS多协议标签交换协议:(Multi-Protocol Lable Switching):是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。多协议的含义是指MPLS不但可以支持多种网络层层面上的协议,还可以兼容第二层的多种数据链路层技术。
优点:1、MPLS采用短而定长的标签进行数据转发,大大提高了硬件限制下的转发能力;(MPLS在入口结点给每一个IP数据报打上固定长度的“标记”,然后根据标记在第二层数据链路层用硬件进行转发(在标记交换路由器中进行标记对换)),因而转发率大大加快)
2、MPLS可以扩展到多种网络协议(例如:IPv6,IPX等);
3、MPLS协议从各种链路层协议(例如:PPP、ATM、帧中继、以太网等)得到链路层服务;
4、可为网络层提供面向连接的服务;
5、MPLS能从IP路由协议和控制协议中得到支持,路由功能强大、灵活,可以满足各种新应用对网络的要求。
6.支持流量工程,平衡网络负载;
7.有效的支持虚拟专用网VPN

12. DHCP协议

DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网LAN的网络协议,使用UDP协议工作,主要有两个用途:1给内部网络或网络服务供应商自动分配IP地址,2给用户或者内部网络管理员作为对所有计算机作中央管理的手段。(包含RARP协议的功能)

13.远程终端协议TELNET

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
工作机制:
使用Telnet协议进行远程登录时需要满足以下条件:
在本地计算机上必须装有包含Telnet协议的客户程序;
必须知道远程主机的Ip地址或域名;
必须知道登录标识与口令。
Telnet远程登录服务分为以下4个过程:
1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;
2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal网络虚拟终端)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;
3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。

交互机制:
当我们使用Telnet登录进入远程计算机系统时,事实上启动了两个程序:一个是Telnet客户程序,运行在本地主机上;另一个是Telnet服务器程序,它运行在要登录的远程计算机上。

本地主机上的Telnet客户程序主要完成以下功能:
建立与远程服务器的TCP联接。
从键盘上接收本地输入的字符。
将输入的字符串变成标准格式并传送给远程服务器。
从远程服务器接收输出的信息。
将该信息显示在本地主机屏幕上。

远程主机的"服务"程序通常被昵称为"精灵",它平时不声不响地守候在远程主机上,一接到本地主机的请求,就会立马活跃起来,并完成以下功能:
通知本地主机,远程主机已经准备好了。
等候本地主机输入命令。
对本地主机的命令作出反应(如显示目录内容,或执行某个程序等)。
把执行命令的结果送回本地计算机显示。
重新等候本地主机的命令。
在Internet中,很多服务都采取这样一种客户/服务器结构。对使用者来讲,通常只要了解客户端的程序就可以了。

14. HTTP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。  
HTTP 协议包括哪些请求?
GET:请求读取由URL所标志的信息。
POST:给服务器添加信息(如注释)。
PUT:在给定的URL下存储一个文档。
DELETE:删除给定的URL所标志的资源。
HTTP 中, POST 与 GET 的区别
1)Get是从服务器上获取数据,Post是向服务器传送数据。get不能改变服务器的数据,一般用于从服务器获取数据,是幂等的;post可以改变服务器的数据,不是幂等的
2)Get是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,在URL中可以看到。
3)Get传送的数据量小,不能大于2KB;Post传送的数据量较大,一般被默认为不受限制。
4)根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
6).get请求参数会被完整地保存在浏览器历史记录中,post请求参数则不会保留
I. 所谓 安全的 意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。
II. 幂等 的意味着对同一URL的多个请求应该返回同样的结果。

HTTP和HTTPS的区别:
HTTP协议是超文本传输协议,采用客户端/服务器的方式,它的特点是:①无连接,建立在TCP连接的基础之上;②无状态,cookie和session可以辅助记录客户端/服务器的状态。
1.HTTP协议运行在TCP之上,不提供身份认证和数据加密,所有数据都是以明文的形式传输的;HTTPS以SSL为安全基础,提供了数据加密和服务器端的身份认证(以对称加密的方式为传输的数据进行加密,用数字证书的方式提供服务器端的身份认证),更为安全
2.HTTPS比HTTP需要耗费更多的资源,响应速度也更慢
3.HTTPS需要CA颁布申请证书,通常不是免费的
4.HTTP和HTTPS是不同的连接方式,HTTP端口号是TCP80,HTTPS端口号是TCP443.

cookie和session的区别:
首先它们都是用于给无连接的http提供身份认证的功能
cookie是服务器在本机存放的小段文本,并随每一个请求发送至同一服务器。cookie分为会话cookie(不设置过期时间,关闭浏览器窗口cookie即失效,保存在内存中)和持久cookie(设置过期时间,关闭再打开浏览器cookie仍存在,直至达到过期时间)。类似于检查通行证(即请求报文中附带的cookie)来确定用户身份
session则一般是利用session id实现的(session id是浏览器第一次发送请求时服务器自动生成的唯一标识,并返回给浏览器),cookie中携带该session id,客户端根据该session id将session检索出来。类似于在服务器上建立一个客户档案,客户来访时需要查询客户档案
1.cookie是存放在客户端,用于记录用户信息的,比如自动填充用户名和密码;
session是存放在服务器端的,用于记录用户的状态,比如购物车的实现。

2.cookie不太安全,可以分析存放在本地的cookie进行cookie欺骗,(也可以用加密算法加密后进行存放),session存放于服务器的内存中,所以安全性高
3.单个cookie保存数据不能超过4k,session没有对存储数据量的限制
禁掉cookie的话session仍然可以使用,但是需要使用其他方法获取session id,比如在url后面或者以表单的形式提交给服务器端。

15. 电子邮件

(1)简单邮件传送协议SMTP
SMTP是由源地址到目的地址传送邮件的一组规则,用来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它使每台计算机在发送或中转信件时能找到下一个目的地。通过使用指定的服务器,把Email寄到收信人的服务器上。
连接和发送过程如下:
(1)建立TCP连接。
(2)客户端发送 HELO 命令以标识发件人自己的身份,客户端发送 MAIL 命令。服务器以OK作为响应,表明准备接收。
(3)使用 AUTH 命令登录SMTP服务器,输入用户名和密码(注意,用户名和密码都需要base64加密)。
(4)客户端发送 RCPT 命令,标识该电子邮件的计划接收人,可以有多个RCPT行。服务器以OK作为响应,表示愿意为收件人发送邮件。
(5)协商结束后,使用 DATA 命令发送。
(6)以 . 号表示结束,输入内容一起发送出去,结束此次发送,用 QUIT 命令退出。
HTTP和SMTP比较:
同:
都被用来从一个主机向另一主机传递文件;http一般把一些文件(也成为对象)从一个web服务器传递到 web客户那里,例如你平时打开个网页。SMTP传递的是电子文件,从一个邮件服务器传递到另一个邮件服务器,并且持续的HTTP和SMTP都是持续连接。
异:
1、HTTP 是一种拉协议,tcp连接是由想接收文件的机器发起的,所谓pull型协议是指:某人是把文件信息,从web server那里取出来,也就是客户主动去拿文件,因此是pull。而SMPT是一种推协议,tcp连接是由要发送该文件的机器发起的,是发送邮件的服务器向接收邮件的服务器主动发送信息。
2、 SMTP要求每个报文(包括它们的体)必须是7比特的ASII码。http数据不受这种限制。
3、HTTP把每个对象封装到自己的HTTP响应报文中,而SMTP则把所有报文对象放在一个报文之中。

SMTP协议应用:使用Socket发送邮件。SMTP协议建立在TCP协议之上,所以原则上按照SMTP协议的规范,使用Socket跟SMTP服务器进行交互。

(2)邮件读取协议POP3和IMAP
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,是TCP/IP协议族中的一员(默认端口是110)。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。
IMAP全称是 Internet Mail Access Protocol,即交互式邮件访问协议,是一个应用层协议(端口是143)。用来从本地邮件客户端(Outlook Express、Foxmail、Mozilla Thunderbird等)访问远程服务器上的邮件。
IMAP和POP3的区别
IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP和POP3是邮件访问最为普遍的Internet标准协议。不同的是:
1、IMAP提供Webmail 与电子邮件客户端之间的双向通信,客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上(如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。) 。而POP3在客户端的操作不会反馈到服务器上。
2、IMAP更好地支持了从多个不同设备中随时访问新邮件。
3、IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。
4、POP3需要下载未阅读的邮件,IMAP可以不用把所有的邮件全部下载,而是通过客户端直接对服务器上的邮件进行操作。所有通过IMAP传输的数据都会被加密,从而保证通信的安全性。
5、IMAP 整体上为用户带来更为便捷和可靠的体验。POP3 更易丢失邮件或多次下载相同的邮件。
在这里插入图片描述

发件人的用户代理向发送方邮件服务器发送邮件,以及发送方邮件服务器向接收方邮件服务器发送邮件,都是用SMTP协议;
用户代理从接收方邮件服务器上读取文件,使用POP3或者IMAP协议。

16. 例子:客户端访问服务器过程

在浏览器中输入 http://www.baidu.com/ 后执行的全部过程。
现在假设如果我们在客户端(客户端)浏览器中输入 http://www.baidu.com, 而 baidu.com 为要访问的服务器(服务器),下面详细分析客户端为了访问服务器而执行的一系列关于协议的操作:
**1)客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,**通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层
2)在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端
3)客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,不作过多的描述,无非就是通过查找路由表决定通过哪个路径到达服务器。
4)客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包,现在就可以传输了,然后发送IP数据包到达服务器的地址。

精简版-完整过程:
1. 域名解析。
DNS解析是一个递归查询的过程,可能会经过以下步骤:
? 在本地域名服务器中查询IP地址,未找到域名,则↓;
? 本地域名服务器会向根域名服务器发送请求,未找到域名,则↓;
? 本地域名服务器向.com顶级域名服务器发送请求,未找到域名,则↓;
? 本地域名服务器向.google.com域名服务器发送请求,找到该域名,将对应的IP返回给本地域名服务器。
2. TCP连接
HTTP协议是使用TCP协议作为其传输层协议,在拿到服务器的IP地址后,浏览器客户端会与服务器建立TCP连接。该过程包括三次握手:
? 第一次握手:建立连接时,客户端向服务端发送请求报文
? 第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文
? 第三次握手,客户端收到服务器的确认后,再次向服务器给出确认报文,完成连接。
三次握手主要是为了防止已经失效的请求报文字段发送给服务器,浪费资源。
3. 浏览器发送HTTP请求
浏览器构建http请求报文,并通过TCP协议传送到服务器的指定端口。http请求报文一共包括三个部分:
? 请求行:指定http请求的方法、url、http协议版本等
? 请求头:描述浏览器的相关信息,语言、编码等。
? 请求正文:当发送POST, PUT等请求时,通常需要向服务器传递数据。这些数据就储存在请求正文中。
4.服务器处理HTTP请求
服务器处理http请求,并返回响应报文。响应报文包括三个部分:
? 状态码:http服务常用的状态码及其含义如下
? 响应头:包含了响应的相关信息,如日期等
? 响应正文:服务器返回给浏览器的文本信息,通常的html、js、css、图片等就包含在这一部分里面。

5、浏览器页面渲染
浏览器接受到http服务器发送过来的响应报文,并开始解析html文档,渲染页面。具体的渲染过程包括:构建DOM树、构建渲染树、定位页面元素、绘制页面元素等。
6. 断开TCP连接
客户端与服务器四次挥手,断开tcp连接。
? 第一次挥手:客户端想分手,发送消息给服务器
? 第二次挥手:服务器通知客户端已经接受到分手请求,但还没做好分手准备
? 第三次回收:服务器已经做好分手准备,通知客户端
? 第四次挥手:客户端发送消息给服务器,确定分手,服务器关闭连接

服务器响应状态码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

19.易错概念

1.传输介质是通信网络中发送方和接收方之间的 (物理) 通路。常用的传输介质有:双绞线、同轴电缆、光纤、无线传输媒介。
2. 127.0.0.1是本机回送地址,主要测试的用途,不能用作某个局域网内网IP。
A类地址中,10.0.0.0到10.255.255.255是私有地址
在B类地址中,172.16.0.0到172.31.255.255是私有地址
在C类地址中,192.168.0.0到192.168.255.255是私有地址
127.0.0.1 本机回送地址 做测试用

  1. IEEE 802.1 :LAN局域网体系结构、寻址、网络互联和网络。
    IEEE 802.1A:概述和系统结构。
    IEEE 802.1B:网络管理和网络互连。
    IEEE 802.2 :逻辑链路控制子层(LLC)的定义。
    IEEE 802.3 :以太网介质访问控制协议 (CSMA/CD)及物理层技术规范。
    IEEE 802.4 :令牌总线网(Token-Bus)的介质访问控制协议及物理层技术规范。
    IEEE 802.5 :令牌环网(Token-Ring)的介质访问控制协议及物理层技术规范。
    IEEE 802.6 :城域网介质访问控制协议DQDB (Distributed Queue Dual Bus 分布式队列双总线)及物理层技术规范。
    IEEE 802.7 :宽带技术咨询组,提供有关宽带联网的技术咨询。
    IEEE 802.8 :光纤技术咨询组,提供有关光纤联网的技术咨询。
    IEEE 802.9 :综合声音数据的局域网(IVD LAN)介质访问控制协议及物理层技术规范。
    IEEE 802.10:网络安全技术咨询组,定义了网络互操作的认证和加密方法。
    IEEE 802.11:无线局域网(WLAN)的介质访问控制协议及物理层技术规范。

  2. show run//看运行状况
    show ip route//看路由表
    show int//看断口*
    show ip int br//看端口ip地址
    show cdp nei//察看cdp邻居
    show ip pro//察看ip协议
    show interface //查看封装类型

  3. 主机甲通过1 个路由器(存储转发方式)与主机乙互联,两段链路的数据传输速率均为10Mbps,主机甲分别采用报文交换和分组大小为 10 kb 的分组交换向主机乙发送 1 个大小为 8Mb( 1M=106)的报文。 若忽略链路传播延迟、分组头开销和分组拆装时间, 则两种交换方式完成该报文传输所需的总时间分别为( )。
    报文传输 : 8Mb/10Mbps*2=1600ms(发送和接收时延相等)
    分组传输:一个分组的时延是10kb/10Mb/s=1ms,共计有800个分组,将最后一个接受到的总时间为801ms。
    8Mb/10kb = 800 个分组, 一个分组需要时间: 10kb/10Mbps = 0.001s = 1ms, 所以总时间为: 800 * 1 + 1 ms = 801ms

  4. 会话跟踪常用的4种方法:URL重写,隐藏表单域,cookie(数据存放在客户的浏览器上),session(数据放在服务器上)。

  5. 局域网内有一主机ip为192.168.1.2,请找到他的mac地址?
    先ping 192.168.1.2 ,ping后其实已经有mac地址了
    接着使用 arp -a 就是查看缓存中ip 与 mac 地址的映射。

  6. 网络的拓扑结构有很多种,主要有星型结构、环型结构、总线结构、分布式结构、树型结构、网状结构、蜂窝状结构等。
    普通以太网:总线型;
    快速以太网:星型。(快速是指100Mbps及其以上)
    光纤分布数据接口FDDI采用( 环形 )拓扑结构。

  7. 4个字节信息是0xEA697341,其校验和是( )
    4个字节分为0xEA69和0x7341两个16bit的整数。校验和的计算是计算所有整数的和,进位加在和的后面,将得到的值按位求反。
    0xEA69二进制表示为1110-1010-0110-1001,0x7341二进制表示为0111-0011-0100-0001,两个数相加,最高位有进位,加在最后一位,得到0101-1101-1010-1011,取反得到0xA254.
    对每一位都按位取反过程:
    最低位:~B(1011) = 4(0100)
    第二低位:~A(1010) = 5(0101)
    第二高位:~D(1101) = 2(0010)
    最高位:~5(0101) = A(1010)

  8. URG:URG=1时,表明紧急指针字段有效,告诉系统有紧急字段需要立即传送。
    ACK:ACK=1时确认号才有效,ACK=0时,确认号无效。TCP规定在连接建立之后所有传送的报文都必须把ACK置1.
    RST:RST=1时表示TCP连接出现严重差错,必须释放连接再重新建立连接。
    FIN:FIN=1表示要求释放连接。

  9. HTTP错误代码
    ? 200:请求被正常处理
    ? 204:请求被受理但没有资源可以返回
    ? 206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。
    ? 301:永久性重定向 ,请求的网页已永久移动到新位置
    ? 302:临时重定向 ,请求的网页已临时移动到新位置
    ? 303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上
    ? 304:发送附带条件的请求时,条件不满足时返回,与重定向无关
    ? 307:临时重定向,与302类似,只是强制要求使用POST方法
    ? 400:请求报文语法有误,服务器无法识别
    ? 401:请求需要认证
    ? 403:请求的对应资源禁止被访问
    ? 404:服务器找不到请求的网页
    ? 500:服务器内部错误
    ? 502:服务器挂了
    ? 503:服务器正忙

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 08:11:23  更:2021-07-28 08:11:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:45:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码