img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

	- * + [1.子网划分(\*\*向主机借位\*\*)](#1_377)
			+ [2.子网掩码](#2_384)
		* [ICMP协议](#ICMP_405)
		* [网络IP地址规划](#IP_411)
+ [第四层:传输层🎋](#_448)
+ - [传输层协议:](#_460)
	- [TCP报文段:](#TCP_465)
	- [数据封装,传输,解封装✨](#_480)
+ [TCP协议原理🎋](#TCP_493)
+ - * [TCP的连接与断开](#TCP_494)
		* [1.TCP建立连接](#1TCP_496)
	- [三次握手原理:](#_497)
	- * [2.TCP断开连接](#2TCP_511)
	- [四次挥手原理:](#_512)
	- * [三次握手握三次,为什么断开要断四次?](#_528)
+ [第五层:会话层🎋](#_537)
+ - * [三大功能](#_545)
+ [第六层:表示层🎋](#_555)
+ [第七层:应用层🎋](#_617)
+ - * [应用层软件结构](#_626)
	- [应用层协议](#_632)
	- * [DNS协议](#DNS_633)
		* [http协议](#http_642)
		* [应用层协议的功能:🎐](#_656)

一、计算机网络体系结构分层

在这里插入图片描述

网络分层概述:

网络分层就是将网络节点所要完成的数据的发送或转发、打包或拆包,控制信息的加载或拆出等工作,分别由不同的硬件和软件模块去完成。这样可以将往来通信和网络互连这一复杂的问题变得较为简单。


在面试时,面试官会问及五层(TCP/IP结构体系),七层(OSI的结构体系)或四层(五层协议的结构体系)网络划分结构,具体指:

在这里插入图片描述

网络层次划分(OSI模型)与(TCP/IP模型):✨

网络层次可划分为五层因特网协议栈和七层因特网协议栈。

五层
因特网协议栈共有五层:应用层、传输层、网络层、链路层和物理层。不同于OSI七层模型这也是实际使用中使用的分层方式。

(1)应用层

支持网络应用,应用协议仅仅是网络应用的一个组成部分,运行在不同主机上的进程则使用应用层协议进行通信。主要的协议有:http、ftp、telnet、smtp、pop3等。

(2)传输层

负责为信源和信宿提供应用程序进程间的数据传输服务,这一层上主要定义了两个传输协议,传输控制协议即TCP和用户数据报协议UDP。

(3)网络层

负责将数据报独立地从信源发送到信宿,主要解决路由选择、拥塞控制和网络互联等问题。

(4)数据链路层

负责将IP数据报封装成合适在物理网络上传输的帧格式并传输,或将从物理网络接收到的帧解封,取出IP数据报交给网络层。

(5)物理层

负责将比特流在结点间传输,即负责物理传输。该层的协议既与链路有关也与传输介质有关。

七层
ISO提出的OSI(Open System Interconnection)模型将网络分为七层,即物理层( Physical )、数据链路层(Data Link)、网络层(Network)、传输层(Transport)、会话层(Session)、表示层(Presentation)和应用层(Application)。

OSI模型共分七层:从上至下依次是 应用层指网络操作系统和具体的应用程序,对应WWW服务器、FTP服务器等应用软件 表示层数据语法的转换、数据的传送等 会话层 建立起两端之间的会话关系,并负责数据的传送 传输层 负责错误的检查与修复,以确保传送的质量,是TCP工作的地方。(报文) 网络层 提供了编址方案,IP协议工作的地方(数据包) 数据链路层将由物理层传来的未经处理的位数据包装成数据帧 物理层 对应网线、网卡、接口等物理设备(位)。

各层简单概述:✨
(1)物理层

物理层(Physical layer)是参考模型的最低层。该层是网络通信的数据传输介质,由连接不同结点的电缆与设备共同构成。主要功能是:利用传输介质为数据链路层提供物理连接,负责处理数据传输并监控数据出错率,以便数据流的透明传输。

(2)数据链路层

数据链路层(Data link layer)是参考模型的第2层。 主要功能是:在物理层提供的服务基础上,在通信的实体间建立数据链路连接,传输以"帧"为单位的数据包,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。

(3)网络层

网络层(Network layer)是参考模型的第3层。主要功能是:为数据在结点之间传输创建逻辑链路,通过路由选择算法为分组(packet, 也称数据包)通过通信子网选择最适当的路径,以及实现拥塞控制、网络互联等功能。

(4)传输层

传输层(Transport layer)是参考模型的第4层。主要功能是向用户提供可靠的端到端(End-to-End)服务,处理数据包错误、数据包次序,以及其他一些关键传输问题。传输层向高层屏蔽了下层数据通信的细节,因此,它是计算机通信体系结构中关键的一层。

(5)会话层

会话层(Session layer)是参考模型的第5层。主要功能是:负责维护两个结点之间的传输链接,以便确保点到点传输不中断,以及管理数据交换等功能。

(6)表示层

表示层(Presentation layer)是参考模型的第6层。主要功能是:用于处理在两个通信系统中交换信息的表示方式,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。

(7)应用层

应用层(Application layer)是参考模型的最高层。主要功能是:为应用软件提供了很多服务,例如文件服务器、数据库服务、电子邮件与其他网络软件服务。

在这里插入图片描述


二、OSI模型详讲:🎀🎀🎀

2.1 概述:

OSI模型:OSI模型定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI模型各层的通信协议,
在这里插入图片描述

第一层:物理层🎋

概述:

物理层 (或称物理层,Physical Layer)是 计算机网络 OSI模型 中最低的一层。 物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。 简单的说,物理层确保原始的 数据 可在各种物理媒体上传输。 局域网 与 广域网 皆属第1、2层。 物理层是 OSI 的第一层,它虽然处于最底层,却是整个开放系统的基础。 物理层为设备之间的 数据通信 提供传输媒体及互连设备,为 数据传输 提供可靠的环境。

常见传输介质:双绞线,光纤(单模传输距离远,速度快,),电缆、中继器、空明线、平衡电缆等。它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。

它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特

                   物理层的PDU被称为比特流

物理层协议

物理层上的协议有时也称为接口。物理层协议规定了与建立、维持与断开物理信道有关的特性。这些特性包括机械的、电气的、功能性的和规程性的四个方面。这些特性确保物理层能够通过物理信道在相邻网络节点之间正确地收、发比特信息,即确保比特流能送上物理信道,并且能在另一端取下它。物理层仅单纯关心比特流信息的传输,而不涉及比特流中各比特之间的关系(包括信息格式及其含义),对传输差错也不作任何控制。
(作了解,感兴趣的朋友们可以自行查看)
USB protocol
Bluetooth protocol
CAN bus
Etherloop
IEEE 802.15.4
IEEE 1394 interface
SMB
ISDN
……

进制转化:
  • 1.十进制: 都是以0-9这九个数字组成,不能以0开头。
  • 2.二进制: 由0和1两个数字组成。
  • 3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。
  • 4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。

十进制转二进制
(1)十进制转二进制的转换原理:除以2,反向取余数,直到商为0终止。

(2)具体做法:

将某个十进制数除2得到的整数部分保留,作为第二次除2时的被除数,得到的余数依次记下,重复上述步骤,直到整数部分为0就结束,将所有得到的余数最终逆序输出,则为该十进制对应的二进制数。

二进制转10进制
二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。

如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。

因为计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零。

如要想二进制00101010转为十进制,因为以0开头,所以这是正整数,计算如下所示:

(0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (0 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42


第二层:数据链路层🎋

概述:

数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。
总结这一层的主要功能:在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。

在这里插入图片描述
上图为两台主机通过互联网进行通信时数据链路层所处的地位。

数据链路层从网络层接收数据包,数据包 包含发送方和接收方的IP地址。有两种寻址方式:逻辑寻址和物理寻址。

物理链路(物理线路):是由传输介质与设备组成的。原始的物理传输线路是指没有采用高层差错控制的基本的物理传输介质与设备。
数据链路(逻辑线路):在一条物理线路之上,通过一些规程或协议来控制这些数据的传输,以保证被传输数据的正确性。实现这些规程或协议的硬件和软件加到物理线路,这样就构成了数据链路,从数据发送点到数据接收点所经过的传输途径。当采用复用技术时,一条物理链路上可以有多条数据链路。

数据链路控制协议也称链路通信规程,也就是OSI参考模型中的数据链路层协议。链路控制协议可分为异步协议和同步协议两大类。

数据链路层的主要协议有:

(1)点对点协议(Point-to-Point
Protocol);
(2)以太网(Ethernet);
(3)高级数据链路协议(High-Level Data Link Protocol); (4)
帧中继(Frame
Relay); (5)
异步传输模式(Asynchronous
Transfer Mode);

以太网与MAC地址

以太网是一种广播式数据链路协议,支持多点接入
MAC地址在网络中唯一标识的一个网卡,每一个网卡都需要唯一的一个物理地址

地址字段 6 个字节中的后三个字节 (即低位 24 位) 由厂家自行指派,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。

在这里插入图片描述
数据封装
以太网头部:目标MAC地址,Source 头部MAC地址, Type MAC 地址

封装成帧与透明传输
封装成帧

在这里插入图片描述

  • 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束
  • 首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
  • 帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
  • 组帧的四种方法:①字符计数法,②字符(节)填充法,③零比特填充法,④违规编码法。
    在这里插入图片描述
透明传输

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

帧同步(组帧的四种方法)

帧同步
为了使传输中发生差错后只将有错的有限数据进行重发,数据链路层将比特流组合成以太帧为单位传送。每个帧除了要传送的数据外,还包括校验码,以使接收方能发现传输中的差错。帧的组织结构必须设计成使接收方能够明确地从物理层收到的比特流中对其进行识别,也即能从比特流中区分出帧的起始与终止,这就是帧同步要解决的问题。

  • (1)字节计数法这是一种以一个特殊字符表示一帧的起始并以一个专门字段来标明帧内字节数的帧同步方法。接收方可以通过对该特殊字符的识别从比特流中区分出帧的起始并从专门字段中获知该帧中随后跟随的数据字节数,从而可确定出帧的终止位置。面向字节计数的同步规程的典型代表是DEC公司的数字数据通信报文协议DDCMP(DigitalData Communications Message Protocol)。
    控制字符SOH标志数据帧的起始。实际传输中,SOH前还要以两个或更多个同步字符来确定一帧的起始,有时也允许本帧的头紧接着上帧的尾,此时两帧间就不必再加同步字符。count字段共有14位,用以指示帧中数据段中数据的字节数,14位二进制数的最大值为16383,所以数据最大长度为131064。DDCMP协议就是靠这个字节计数来确定帧的终止位置的。DDCMP帧格式中的ACK、SEG、ADDR及FLAG中的第2位CRC1、CRC2分别对标题部分和数据部分进行双重校验,强调标题部分单独校验的原因是,一旦标题部分中的CONUT字段出错,即失却了帧边界划分的依据。由于采用字符计数方法来确定帧的终止边界不会引起数据及其它信息的混淆,因而不必采用任何措施便可实现数据的透明性(即任何数据均可不受限制地传输)。
  • 2)使用字符填充的首尾定界符法:该法用一些特定的字符来定界一帧的起始与终止,为了不使数据信息位中出现的与特定字符相同的字符被误判为帧的首尾定界符,可以在这种数据字符前填充一个转义控制字符(DLE)以示区别,从而达到数据的透明性。但这种方法使用起来比较麻烦,而且所用的特定字符过份依赖于所采用的字符编码集,兼容性比较差。
  • 3)使用比特填充的首尾标志法:该法以一组特定的比特模式来标志一帧的起始与终止。
  • (4)违法编码法:该法在物理层采用特定的比特编码方法时采用。例如,一种被称作曼彻斯特编码的方法,是将数据比特“1”编码成“高-低”电平对,而将数据比特“0”编码成“低-高”电平对。而“高-高”电平对和“低-低”电平对在数据比特中是违法的。可以借用这些违法编码序列来定界帧的起始与终止。局域网IEEE 802标准中就采用了这种方法。违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适用于采用冗余编码的特殊编码环境。由于字节计数法中COUNT字段的脆弱性以及字符填充法实现上的复杂性和不兼容性,较普遍使用的帧同步法是比特填充和违法编码法。

第三层:网络层🎋

网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层,它在下两层的基础上向资源子网提供服务。其主要功能是:在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接,将数据设法从源端经过若干个中间节点传送到目的端(点到点),从而向传输层提供最基本的端到端的数据传输服务.具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。数据链路层和网络层的区别为:数据链路层的目的是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。

网络层协议
网络层经常被称为IP层。但网络层协议不只是IP协议。

逻辑地址:就是网络层地址,如TCP/IP协议栈的IP地址,OSI中的NSAP地址。当一个从应用层发起的数据包,一层层封装到网络层时,会接着封装上一个网络层的头部,在网络层的头部中,就包括逻辑地址等信息。

IP协议

网际协议IP

网际协议IP是TCP/IP体系中两个最主要的协议之一,同时IP协议也是最重要的互联网标准协议之一。

与IP协议配套使用的还有三个协议:

  • (1)地址解析协议 ARP( address resolution protocol )
  • (2)网际控制报文协议 ICMP( internet control message protocol )
  • (3)网际组管理协议 IGMP( internet group management protocol )
数据封装

IPv4报文
在这里插入图片描述

IP数据报由首部和数据部分组成,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的。固定部分后面的是可选字段,其长度可变。

IP 数据报首部各字段的意义:

(1)版本( version ),4 位,IP 协议的版本。0100 V4版本,0110 V6版本。

(2)首部长度( header length ),4 位,含固定部分和可变部分首部长度。

(3)区分服务( differentiated services field ),8 位,优先级和 ToS

(4)总长度( total length ),16 位,首部和数据之和的长度,单位字节。

(5)标识( identification ),16 位,确保拥有相同标识字段值的分片能够重新组装成为原来的数据报。

(6)标志 ( flag ),3 位,目前只有后两位有实际意义。最低位为
MF=1,即表示后面还有分片,MF=0,即表示这是最后一个分片。中间的一位为 DF,意为不能分片。只当 DF=0 时才可允许分片。

(7)片偏移( falgment offset ),13 位,较长的分组在分片后,某片在原分组中的相对位置。

(8)生存时间( TTL,Time to live ),8 位,数据报在因特网中至多可经过几个路由器,最大跳数255。TTL=1
表示该数据报只能在本局域网内传输。每经过一个路由器TTL-1,当该字段为0时,数据包将被丢弃

(9)协议( Protocol ),8 位,表示数据报所携带的数据是使用何种协议,以便上交给上层谁来负责处理。如 TCP UDP OSPF
IPv6 EGP IGP IGMP ICMP ESP 等。

(10)首部检验和( header checksum ),16 位,只检验数据报的首部,不包括数据部分。

(11)源地址( source ip address ),32 位。

(12)目的地址( destination ip address ),32 位。

(13)可变部分,1 个字节到 40 个字节不等。包含可选字段和填充字段。极少用。


协议号()
什么是IP地址
  • IP地址在网络中用于表示一个节点(或者网络设备的接口)
  • IP地址用于IP报文早网络中的寻址
IP地址的表示
  • 一个IPv4地址有32bit
  • IPv4地址通常采用“点分十进制”表示
IP地址构造
  • 网络部分:用来标识一个网络
  • 主机部分:用来区分一个网络内的不同主机
  • 网络掩码:区分一个IP地址中的网络部分及主机部分
IP地址分类

IP地址是Internet地址的一种表示形式

IPv4地址按照网络号和主机号的长度被分为五大类。A、B、C类用于为Internet(单播地址)中的设备接口分配地址,以及其他特殊情况下使用。类由地址中的头几位来定义:
0为A类,10为B类,110为C类,1110为D类,1111为E类。D类地址供组播使用,E类地址保留。分类如下图所示:

在这里插入图片描述
A:0-127
B:128-191
C:192-223
D: 224-239
E:240-255
每个网段中都用网络地址和广播地址

ABC默认网络掩码
A类:8bit ,0.0.0.0~127.255.255.255/8
B类:16bit,128.0.0.0~191.255.255.255/16
C类:24bit,192.0.0.0~223.255.255.255/24

私有IP地址的范围有:
10.0.0.0-10.255.255.255 

172.16.0.0—172.31.255.255 

192.168.0.0-192.168.255.255 

上述的IP地址都是可以使用在局域网中的。

IP地址类型

网络地址:用来标识一个网络
广播地址:用于向该网络中所有的主机发送数据的特殊地址192.168.10.1
可用地址:可分配给网络中的节点或者网络设备接口的地址
192.168.10.1/24

Ip地址数:2^16=65536
可用:2^16-2=65534

NAT技术

特殊IP地址

一、0.0.0.0

严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。

二、255.255.255.255

限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。

三、127.0.0.1

本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。

四、224.0.0.1

组播地址,注意它和广播的区别。从224.0.0.0到239.255.255.255都是这样的地址。224.0.0.1特指所有主机,224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。

五、169.254.X.X

如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。如果你发现你的主机IP地址是一个诸如此类的地址,很不幸,十有八九是你的网络不能正常运行了。

六、10.X.X.X、172.16.X.X~172.31.X.X、192.168.X.X

私有地址,这些地址被大量用于企业内部网络中。一些宽带路由器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址以及组播地址。

划分子网和构造超网
1.子网划分(向主机借位)

子网划分的若干个好处:

  • ①减少网络流量
  • ②提高网络性能
  • ③简化管理
  • ④可以更为灵活的形成大覆盖范围的网络
2.子网掩码

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

器,也往往使用192.168.1.1作为缺省地址。私有网络由于不与外部互连,因而可能使用随意的IP地址。保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱。使用私有地址的私有网络在接入Internet时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址。在Internet上,这类地址是不能出现的。对一台网络上的主机来说,它可以正常接收的合法目的网络地址有三种:本机的IP地址、广播地址以及组播地址。*

划分子网和构造超网
1.子网划分(向主机借位)

子网划分的若干个好处:

  • ①减少网络流量
  • ②提高网络性能
  • ③简化管理
  • ④可以更为灵活的形成大覆盖范围的网络
2.子网掩码

[外链图片转存中…(img-rrkhQ6vl-1715008860749)]
[外链图片转存中…(img-plmBeTa9-1715008860750)]
[外链图片转存中…(img-RuLuzidV-1715008860750)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐