第一节 网络知识相关基础
目录
1.什么是网络
(1)概念: 网络是由⽹络连接设备通过传输介质将⽹络终端设备连接起来, 进⾏信息传递、资源共享的平台
(2)作⽤: 信息传递、资源共享
(4). 传输介质:⽹线、光纤、同轴电缆
(5).⽹络终端设备:PC、服务器、摄像头、电视
(6).路由器:连接互联网内局域网和广域网的设备
2.OSI七层参考模型
OSI (开放式系统互连模型)由 ISO 提出的一条标准。
1.应用层:通过人机交互来实现各种各样的服务
- 应用层的作用:为应用软件提供接口,是应用程序能够使用网络服务
- 常见的应用层协议:http(80)、ftp(20/21)、smtp(25)、pop3(110)、telnet(23)、dns(53)等
-
2.表示层:编码 解码 加密 解密
- 表示层 的作用:
---数据的解码和编码
---数据的加密和解密
---数据的压缩和解压缩
3.会话层:发现 建立 维持 终止会话进程
--功能:对话控制 同步
4.传输层:产生数据 ----->传递数据
(1).通过端口号来区分不同服务( 端口号范围:0-65535 {2^16=65536} )
端口号分类:静态端口号 1-1023 (一个端口号对应一个服务,呈永久绑定关系)
http----超文本传输协议 80/8080 ,https ----更安全 443
域名系统(DNS)---TCP/UDP 端口 53
超文本传输协议(HTTP)—TCP 端口 80
简单邮件传输协议 (SMTP)— TCP 端口 25
邮局协议 (POP) — TCP 端口 110
Telnet — TCP 端口 23
动态主机配置协议 — UDP 端口 67 和端口 68
文件传输协议 (FTP)— TCP 端口 20 和端口 21
URL:https://www.sogou.com:443--静态端口号被省略掉了
URL--统一资源定位符
动态端口号 1024-65535 一个端口号对应一个服务,呈暂时性绑定关系
0为保留端口号,在网络编程中使用,用于代表所有端口号。
(2) 提供可靠的传输 (由协议来实现)
如何理解协议?协议是一种标准,可以对话的标准
面向连接 :先三次握手,后四次挥手
可靠 ----确认 重传 排序 流控
TCP 与 UDP 的区别:
特征点 | TCP | UDP |
---|---|---|
是否连接 | 面向连接 | 面向非连接 |
传输可靠性 | 可靠 | 会丢包,不可靠 |
应用场景 | 传输数据量大 | 传输量小 |
速度 | 慢 | 快 |
(3)数据分段
MSS | 最大段长度 | 1480B |
MTU | 最大传输单元 | 1500B |
注:单位换算关系: 字节和位 1字节=8
- • 数据的封装与解封装
5. 网络层:
根据IP地址来进行逻辑寻址 编址、寻址 --IP协议--网际网络协议
互联网的每一个节点,必然会存在一个IP地址
6.数据链路层 :
LLC | 逻辑链路控制子层 | 为上层服务提供FCS校验 | 封装与解封装 |
MAC | 媒介访问控制子层 | 根据MAC地址 | 进行物理寻址 |
注: FCS校验(暗号)
• 数据链路层的作用
在不可靠的物理链路上,提供可靠的数据传输服务,把帧 从一跳(结点)移动到另一跳(结点)。
• 数据链路层的功能:
组帧、物理编址,流量控制,差错控制、接入口控制
7 .物理层 :定义电气电压 光学特性 接口规范
记忆口诀: 物数网传会表应 应表会传网数物
8.分层的目的:
- 降低层次之间的关联性,某一层的协议增加或减少不影响其他层次协议的工作。
- 便于标准化的制定。
- 便于学习和了解计算机层次
3.N 层设备
1.如何定义?什么是七层设备?什么是三层设备?
此设备可以解封装到第N层,就称之为N层设备
4.三次握手,四次挥手
SYN:同步序列号请求
ACK:确认
Seq+1 = ack
1.三次握手
2.四次挥手
FIN-请求断开连接
5.封装与解封装
封装可以理解为各层将每一层的实现数据添加到内容数据之前,解封装是逆过程*而真正完成这个工作的是工作在各个层次的协议。类似于寄信的时候不能可把信纸直接寄出,需要要信封,收件人,发件人,邮编,邮票等东西,这些东西相当于各层的实现数据。
1. 报头:TCP
下面我们介绍TCP协议的数据报头的解析,其长度为20个字节。详细解析:
源端口(16位),目的端口(16位)。
顺序号(32位),表明了发送的数据报的顺序。
确认号(32位),希望收到的下一个数据报的序列号。
TCP协议数据报头头长(4位),表明TCP头中包含多少个32位字。
下面6位目前未用,
ACK:ACK位置1表明确认号是合法的。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。
PSH:表示是带有PUSH标志的数据。接收方因此请求数据报一到便可送往应用程序而不必等到缓冲区装满时才传送。
RST:用于复位由于主机崩溃或其它原因而出现的错误的连接。还可以用于拒绝非法的数据报或拒绝连接请求。
SYN:用于建立连接。
FIN:用于释放连接。
窗口大小(16位),表示在确认了字节之后还可以发送多少个字节。
检验和(16位),是为了确保高可靠性而设置的。它校验头部、数据和伪TCP头部之和。
紧急指针(16位),它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
以上20个字节组成了TCP协议的基本报头。
由此我们可以得出一个算法:普通TCP协议的总报头长度=以太网数据报头+IP数据报头+TCP协议数据报头。
2.UDP 报头
3. IP 报头
版本号(Version):长度4比特。标识目前采用的IP协议的版本号。一般的值为0100(IPv4),0110(IPv6)
IP包头长度(Header Length):长度4比特。这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP头部长度(单位为bit)/(84),因此,一个IP包头的长度最长为“1111”,即154=60个字节。IP包头最小长度为20字节。
服务类型(Type of Service):长度8比特。8位 按位被如下定义 PPP D T R C 0
PPP:定义包的优先级
000 普通 (Routine)
001 优先的 (Priority)
010 立即的发送 (Immediate)
011 闪电式的 (Flash)
100 比闪电还闪电式的 (Flash Override)
101 CRI/TIC/ECP (不知道虾米意思)
110 网间控制 (Internetwork Control)
111 网络控制 (Network Control)
D 时延: 0:普通 1:尽量小
T 吞吐量: 0:普通 1:尽量大
R 可靠性: 0:普通 1:尽量大
M 传输成本: 0:普通 1:尽量小
0 最后一位被保留,恒定为0
IP包总长(Total Length):长度16比特。 以字节为单位计算的IP包的长度 (包括头部和数据),所以IP包最大长度65535字节。
标识符(Identifier)(数据报ID):长度16比特。该字段和Flags和Fragment Offest字段联合使用,对大的上层数据包进行分段(fragment)操作。路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。
标记(Flags):长度3比特。该字段第一位不使用。第二位是DF(Don’t Fragment)位,DF位设为1时表明路由器不能对该上层数据包分段。如果一个上层数据包无法在不分段的情况下进行转发,则路由器会丢弃该上层数据包并返回一个错误信息。第三位是MF(More Fragments)位,当路由器对一个上层数据包分段,则路由器会在除了最后一个分段的IP包的包头中将MF位设为1。
片偏移(Fragment Offset):长度13比特。表示该IP包在该组分片包中位置,接收端靠此来组装还原IP包。
生存时间(TTL):长度8比特。当IP包进行传送时,先会对该字段赋予某个特定的值。当IP包经过每一个沿途的路由器的时候,每个沿途的路由器会将IP包的TTL值减少1。如果TTL减少为0,则该IP包会被丢弃。这个字段可以防止由于路由环路而导致IP包在网络中不停被转发。
协议(Protocol):长度8比特。标识了上层所使用的协议。
以下是比较常用的协议号:
1 ICMP
2 IGMP
6 TCP
17 UDP
88 IGRP
89 OSPF
头部校验(Header Checksum):长度16位。用来做IP头部的正确性检测,但不包含数据部分。 因为每个路由器要改
变TTL的值,所以路由器会为每个通过的数据包重新计算这个值。
起源和目标地址(Source and Destination Addresses):这两个地段都是32比特。标识了这个IP包的起源和目标地址。要注意除非使用NAT,否则整个传输的过程中,这两个地址不会改变。
至此,IP包头基本的20字节已介绍完毕,此后部分属于可选项,不是必须的部分。
可选项(Options):这是一个可变长的字段。该字段属于可选项,主要用于测试,由起源设备根据需要改写。可选项目包含以下内容:
松散源路由(Loose source routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,但是允许在相继的两个IP地址之间跳过多个路由器。
严格源路由(Strict source routing):给出一连串路由器接口的IP地址。IP包必须沿着这些IP地址传送,如果下一跳不在IP地址表中则表示发生错误。
路由记录(Record route):当IP包离开每个路由器的时候记录路由器的出站接口的IP地址。
时间戳(Timestamps):当IP包离开每个路由器的时候记录时间。
填充(Padding):因为IP包头长度(Header Length)部分的单位为32bit,所以IP包头的长度必须为32bit的整数倍。因此,在可选项后面,IP协议会填充若干个0,以达到32bit的整数倍。
6. TCP/IP与OSI区别
1. 相同点:
1.都使用分层的网络体系结构。
2.OSI的网络层与TCP/IP的网络互联层功能基本相同。
3.二者的传输层功能基本相似,都是负责为用户提供真正的端到端通信服务,对高层屏蔽了低层的实现细节。
4.都以传输层为界,上层都依赖于传输层提供的端到端、与网络环境无关的数据传输服务。
2. 不同点:
1.结构与应用
OSI:七层。注重理论,考虑因素诸多,仅仅是参考模型。
TCP/IP:四层。注重实践,有成熟的产品,并成为工业标准。
2.网络互联问题
OSI:一开始主要针对广域网,后来才意识到网络互联的重要性,才在网络层中划分了个子层来实现IP的功能。
TCP/IP:一开始就注重网络互联的重要性,并单独为IP设置一个层次。
3.层次与功能
OSI:网络层既提供面向连接的虚电路服务,又提供无连接的数据报服务。传输层只提供面向连接的服务。
TCP/IP:网络互联层只提供无连接的数据报服务。传输层既提供面向连接的TCP,又提供无连接的UDP。
4.层次之间
OSI:OSI对层次与协议做了明确的规范。通信时,上层只能使用下一层提供的服务,不可以跨层。
TCP/IP:并未明确定义,甚至也未明确定义网络接口层的功能。通信时,上层可直接使用更低层提供的服务,允许跨层。(典型代表:Ping)
以上为有关网络基础相关内容
(初写博客若有不足请指正!)