计算机网络

计算机网络

Linux的防火墙功能是由内核实现的,iptables(称为防火墙功能的用户态)只是暴露出来给用户设定规则的,然后再将用户设定的规则传给内核的netfilter(称为防火墙功能的内核态)进行过滤

iptables(主要作用于网络层)

所在文件:
	/sbin/iptables
	
命令格式:
	iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]
	#注意:	
		不指定表名时,默认表示filter表
		不指定链名时,默认表示该表内的所有链 
		除非设置规则链地缺省策略,否则需要指定匹配条件

设置规则内容:
	-A:在链尾追加一条新的规则
	-I:在指定的位置插入一条新的规则
	-R:修改、替换指定位置或内容规则
	-P:设置指定链地默认策略

列表查看规则:
	-L:列表查看各条规则信息
	--line-num:查看规则信息时显示规则行号
	-n:以数字形式显示IP地址、端口等信息
	-v:显示数据包个数、字节数等详细信息
	
清除规则:
	-F:清空规则链内的所有规则
	-D:删除指定位置或内容的规则
	
通用条件匹配:
	可以直接使用不依赖于其他条件或扩展模块
	包含网络协议、IP地址、网络接口等匹配方式
	
隐含条件匹配:
	一般需要以特定的协议匹配作为前提
	包括端口、TCP标记、ICMP类型等匹配方式
	
显示条件匹配:
	需要使用“-m 拓展模块” 的形式明确指定匹配方式
	包含多端口、MAC地址、IP地址范围、数据包状态等
	匹配方式

协议匹配:
	使用“-p 协议名” 的形式
	协议名可使用在“/etc/protocols”文件中定义的名称
	常用协议包括tcp、udp、icmp等
	“-j [选项]”:
		ACCEPT:接受
		REJECT:拒绝访问,但是会回复拒绝
		DROP:拒绝访问不给回应
		
端口匹配:
	使用“--sport 源端口号”、 “--dport 目标端口”的形式
	采用“端口1:端口2”的形式可以指定一个范围的端口
	需要配合-p使用指定协议	
	 
数据包状态匹配:
	使用“-m state”结合“--state 状态类型”的形式
	同时表示多种状态时以逗号分割
	常见的数据包状态包括:
		NEW:第一次连接
		ESTABLISHED:已经建立连接
		RELATED:根据某个已经建立的关系,新建一个连接

地址匹配:
	使用“-s 源地址” “-d 目的端口”的形式
	地址可以时单个IP地址、网络地址(带掩码长度)
	
接口匹配:
	使用“-i 网络接口名”、 “-o 网络接口名” 的形式,
	分别对应接受、发送数据包的网络接口
	
默认的四表:(按访问先后顺序排列)
	raw表:确定是否对数据包进行状态跟踪(含有PREROUTING\POSTROUTING链)
		managle表:为数据包设置标记 #(含有PREROUTING\POSTROUTING\INPUT\OUTPUT\FORWARD链)
	nat表:目的IP地址以及端口号 # nat和filter表用得最多 (含有PREROUTING\POSTROUTING\FORWARD链)
	filter表:确定是否放行该数据包# (含有INPUT\OUTPUT\FORWARD链)
	
默认的五种规则链:
	INPUT链:处理入站数据包
	OUTPUT链:处理出战数据包
	FORWARD链:处理转发数据包
	POSTROUTING链:处理路由选择后处理数据包
	PRETOUTING链:处理路由选择前处理数据包
规则链内匹配顺序:
	按顺序依次进行检查,找到相匹配的规则,则按该链的默认策略处理

演示:

#!/bin/bash

#清空filter地规则、表里的规则都会被清空
iptables -F

#iptables
iptables -P INPUT DROP

#禁用web
iptables -A INPUT -S 192.168.101.33 -p tcp --dport 80 -j DROP

#禁用MYSQL
iptables -A INPUT -S 192.168.101.33 -p tcp --dport 3306 -j DROP

#禁用PING
iptables -A INPUT -p icmp --icmp--type 8 -j DROP
iptables -A INPUT -p icmp --icmp--type 0 -j ACCEPT

#允许ssh访问
iptables -A INPUT -S 192.168.101.33 -p tcp --dport 3306 -j ACCEPT

#以上都是临时存储,下面介绍永久保存规则
iptables-save > /root/all_iptables.txt
iptables-restore < /root/all_iptables.txt 

开机时加载规则:
	chmod +x /etc/rc.d/rc.local
	/etc/rc.local 这个文件下的内容开机就会启动
	将iptables-restore < /root/all_iptables.txt 写入文件

ping命令是使用的icmp协议

image-20220409163917603

协议

SNMP协议(simple network manegerment protcol):简单网络管理协议 

lsmod查看内核加载了哪些模块

防火墙脚本的一般结构

1、设置网段、网卡、IP地址等变量

2、加载包过滤相关的内核模块

FTP相关:ip_nat_ftp、ip_conntrack_ftp
Mail相关:ip_nat_irc、ip_conntrack_irc

3、确认开启路由转发功能

临时开启:
	/sbin/sysctl -w net.ipv4.ip_forward=1
	或
	echo 1>/proc/sys/net/ipv4/ip_forward 
永久开启:
	修改/etc/sysctl.conf,设置net.ipv4.ip_forward=1

image-20220409204625704

计算机网络微课堂

计算机网络的定义和分类

计算机网络的定义:

​ 计算机网络的简单定义:一些互相连接的、自治的计算机的集合。

​ 互连:是指计算机之间可以通过有线或无线的方法进行数据通信

​ 自治:是指独立的计算机,他有自己的硬件和软件,可以单独运行使用

​ 集合:是指至少需要两台计算机

计算机网络的分类:

计算机网络的性能指标

1、速率:
连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或数据率,常用数据率单位bit/s

image-20220412170036968

例题:

有一个待发送的数据块,大小为100MB,网卡的发送速率为100Mbps,则网卡发送完该数据需要多久时间

image-20220412170447179

2、带宽:

image-20220412170637913

3、吞吐量:
吞吐量表示在单位时间内通过某个网络(或信道、接口)的数据量。

​ 吞吐量被经常适用于对现实网络世界中的网络的一种测量,以便知道实际上到底有多少数据能够通过网络

​ 吞吐量受网络的带宽或额定速率的限制。

4、时延:

​ 网络时延= 发送实验+传播时延+处理时延

image-20220412171542267

5、时延带宽积:

​ =传播时延*带宽

image-20220412172000836

6、往返时间:

image-20220412172141586

7、利用率:

image-20220412172340299

8、丢包率:

image-20220412172535745

计算机网络体系结构

1、常见的计算机网络体系结构

OSI体系结构:

​ 从上到下:应用层、表示层、会话层、传输层、网路层、数据链路层、物理层七层

TCP/IP体系结构:

​ 从上到下:应用层、传输层、网际层、网络接口层4层

原理体系结构:

​ 应用层、传输层、网络层、数据链路层、物理层

2、计算机网络体系结构分成的必要性

​ “分层”可以将庞大而复杂的问题,转化为若干较小的局部问题

image-20220412175009270

3、计算机网络体系结构分层的思想举例

image-20220412175607673

4、计算机体系结构中的专用术语

实体:任何可以发送或接收信息的硬件或软件进程

对等实体:收发双方之间的对等硬件

image-20220412175811695

image-20220412175928830

协议:控制两个对等实体进行逻辑通信的规则集合

协议的三要素:语法、语义、同步

​ 语法:定义双方交换信息格式

​ 语义:定义收发双方所要完成的操作

​ 同步:定义收发双方的时序逻辑

服务:

​ 在协议的控制下,两个对等实体间的逻辑通信使得本层能够向上一层提供服务

​ 协议数据流单元PDU 对等层次之间传输的数据包称为该层的协议数据单元

image-20220412180611443

image-20220412180900144

物理层的基本概念

​ 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输比特流。

​ 物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络传输媒介是什么

物理层下的传输媒体:

​ 导引型传输媒介:双绞线、同轴电缆、光纤、电力线

​ 非导引型传输媒介:无线电波、微波、红外线、可见光

同轴电缆图

image-20220412220822611

双绞线图

image-20220412220947493

光纤图

image-20220412221146151

image-20220412221400286

传输方式

串行传输

image-20220412221925958

并行传输

image-20220412221954086

同步传输和异步传输

image-20220412222152344

单向通信、双向交替通信和双向同时通信

image-20220412222323379

编码与调制

image-20220413100424751

编码

image-20220413095855730

信道极限容量

奈氏准则

image-20220413100742084

香农公式

image-20220413100907895

image-20220413101038779

数据链路层

数据链路层的三个重要问题

封装成帧

image-20220413102824979

image-20220413103346850

差错检测

image-20220413102206927

差错检测之奇偶校验

image-20220413103756664

差错检测之循环冗余校验(CRC - Cyclic Redundancy Check)

image-20220413104245977

可靠传输

image-20220413102244328

可靠传输之停止-等待协议SW

image-20220413134512547

image-20220413134623033

image-20220413135357908

可靠传输之回退N帧协议GBN

image-20220413135859140

窗口数量大于2^n-1的时候接收方无法分辨新旧数据

image-20220413140218520

可靠传输之选择重传协议SR

image-20220413141549673

点对点协议PPP

​ 点对点协议(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议

image-20220413145910659

媒体接入控制

​ 共享信道着重考虑的一个问题就是如何协调多个发送和接收点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)

image-20220413150811689

​ 随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术

静态划分信道

频分复用FDM

image-20220413151654245

时分复用TDM

image-20220413151837961

波分复用WDM-即光的频分复用

image-20220413152005352

码分复用CDM

image-20220413152246363

随机接入-动态接入

(采用CSMA/CD协议:载波监听多址接入/碰撞检测)

多址接入:多个站连接在一条总线上,竞争使用总线。

载波监听:每个站在发送帧之前都要先检测一下总线上是否有其他站点在发送帧(先听后说);若检测到总线空闲96比特时间,则发送这个帧;若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧

碰撞检测CD:每一个正在发送帧的站边发送边检测碰撞(边听边说),一旦发现总线上出现碰撞,则立即停止发送,退避一段随机时间后再次重发。(一旦冲突,立即停说;等待时机,重新再说)

image-20220413154155308

(采用CSMA/CA协议:载波监听多址接入/碰撞避免 )

​ 在无线局域网中,不能使用碰撞检测CD的原因:

​ 由于无线信道的传输条件特殊,其信号强度的动态范围范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。

​ 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在屏蔽站问题),进行碰撞检测的意义也不大。

image-20220413163338696

802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。

​ 由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。

image-20220413164220729

image-20220413164709683

以下情况必须使用退避算法:

  • 在发送数据帧之前检测到信道处于忙时;
  • 在每一次重传一个数据帧时
  • 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)

CSMA/CA协议的退避算法

在执行退避算法时,站点为退避计时器设置一个随机退避时间:

image-20220413170328583

image-20220413170536833

image-20220413171003527

MAC地址、IP地址以及ARP协议

MAC地址

MAC地址时以太网的MAC的子层所使用的地址;(数据链路层)
MAC地址一般被固化在网卡(网络适配器)的电可擦只读存储器EEPROM中,因此MAC地址也称为硬件地址。
严格来说,MAC地址是唯一接口标识而不是唯一设备标识

IP地址作用

IP地址是TCP/IP体系结构网际层所使用的地址;(网际层)
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息:
	网络编号:标识因特网数以百万计的网络
	主机编号:标识同一网络上不同主机(或路由器各接口)
	

image-20220413194746655

ARP协议

ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址 ;网际层)

ARP协议有自己的arp高速缓存表,表里的内容存放的是ip地址与对应的mac地址,动态的是arp发广播学来的,2分钟后便会清除。静态配置的是永久的。

image-20220413195337995

交换机

以太网交换机自学习和转发帧的流程

以太网交换机工作在数据链路层(也包括物理层 )

image-20220413214307957

以太网交换机的生成树协议STP

如何提高以太网的可靠性?

  • 添加冗余链路可以提高以太网的可靠性,但是,冗余链路也会带来负面效应--形成网络环路
  • 网络环路会带来以下问题:
    • 广播风暴:
      • 广播风暴的危害:大量消耗网络资源,使得网路无法正常转发其他数据帧
    • 主机收到重复的广播帧
      • 大量消耗主机资源
    • 交换机的帧交换表震荡(漂移)
  • 为了避免在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题便有了生成树协议STP
  • 不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的(无逻辑环路)
  • image-20220413220308963

虚拟局域网VLAN

虚拟局域网VLAN是一种局域网内的设备划分成与物理位置无关的逻辑组技术,这些逻辑组具有某些共同的需求

Access端口

image-20220414093917384

Trunk端口

image-20220414094207216

image-20220414094312910

网络层

概述

​ 网络层的主要任务是实现网络互联,进而实现数据包在个网络之间的传输

要实现网络层任务,需要解决以下主要问题:

  • 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)
  • 网络层寻址问题
  • 路由选择问题

网路层提供的两种服务

面向连接的虚电路服务

  • 可靠通信由网络来保证连接——虚拟电路VC(Virtual Circuit)
  • 通信双方沿着已建立的虚电路发送分组

image-20220414100703535

无连接的数据报服务

  • 可靠通信应当由用户主机来保证
  • 不需要建立网络连接
  • 每个分组可走不同的路径
  • 每个分组的首部必须携带目的主机的完整地址
  • 这种通信方式所传送的分组可能误码、丢失、重复和失序

image-20220414101004155 IPv4地址

IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符

​ 2014-2015年也逐步停止了面向新用户和应用分配IPv4地址。同时开始全面开展商用部署IPv6.

IPv4分类编址

image-20220414105844607

A类网络

image-20220414110113957

B类网络

image-20220414110241407

C类地址

image-20220414110455818

划分子网的IPv4地址

​ 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号

image-20220414112321489

image-20220414112539446

image-20220414112858401

默认子网掩码

image-20220414113402745

无分类编址的IPv4地址

image-20220414130409197

image-20220414130751155

image-20220414131303949

IPv4地址的应用规划

定长子网掩码FLSM

image-20220414132811604

变长子网掩码VLSM

image-20220414133325708

IP数据包的发送和转发过程

默认网关

image-20220414133956397

静态路由配置及其可能产生路由环路的问题

image-20220414141026161

路由环路

image-20220414141146016

image-20220414141426999

image-20220414141606069

路由协议

因特网采用分层次的路由选择协议

image-20220414145602465

常见的路由选择协议

image-20220414145719140

路由信息协议RIP的基本工作原理

​ 路由信息协议RIP(Routing Information Protocol)是内部网关协议IGP中最先得到广泛使用的协议之一。

image-20220414150428685

​ RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由。

​ 当到达同一目的的网络有多条“距离相等”的路由时,可以进行等价负载均衡

image-20220414150818209

​ 路由更新的规则

image-20220414151418683

image-20220414151616997

RIP协议存在**坏消息传播得慢**的问题

​ “坏消息传播得慢”又称为路由环路距离无穷计数问题,这是距离向量算法的一个固有问题,所以下一跳地址最多只能到15

image-20220414152119432

开放最短路径优先OSPF协议工作原理

image-20220414153011325

OSPF相邻路由器之间通过交互问候(Hello)分组 ,建立和维护邻居关系。

image-20220414153422764

链路状态通告LSA

image-20220414153636805

链路状态数据库LSDB

image-20220414153848232

基于LDSB构建路由表

image-20220414154045777

OSPF的五种分组类型

image-20220414154139919

OSPF在多点接入网络中路由器建立邻居关系

image-20220414154447310

为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分区域

image-20220414154819200

边界网关协议BGP的基本工作原理

配置BGP时,选择BGP发言人

image-20220414155321657

BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统)

当BGP发言人交互了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到路由信息中找出到达各自治系统的较好的路由。也就是构造出树形结构、不存在回路的自治系统连接图。

BGP适用于多级结构的因特网

image-20220414155940922

BGP-4有以下四种报文:

image-20220414160046787

image-20220414160314997

IPv4的首部数据报格式

image-20220414162908862

IP数据报长度相关

image-20220414163101420

标识、标志、片偏移字段(这三个字段共同用于IP数据报分片)

image-20220414163344920

生存时间TTL——防止IP数据报在网络中永久兜圈

占8比特,最初以秒为单位,最大生存周期时间为255秒;路由器转发IP数据报时,将IP数据报首部中的该字段的值减去IP数据报在本机路由器上所消耗的时间,若不为0就转发,否则就丢弃。

现在以跳数为单位,路由器转发IP数据报时,将IP数据报首部中的该字段值减1,若不为0就转发,否则就丢弃。

image-20220414165402912

协议

image-20220414165544650

首部检验和

占用16个比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特网检验和。

网际控制报文协议ICMP

ICMP差错报告报文共有一下五种:

  • 终点不可达

image-20220414170310277

  • 源点抑制

image-20220414170413588

image-20220414170429370

  • 时间超过

image-20220414170543316

  • 参数问题

image-20220414170652494

  • 改变路由(重定向)

以下情况不应发送ICMP差错报文image-20220414171043252

常见的两种ICMP询问报文

image-20220414171243134

ICMP协议的应用举例

  • 分组网间探测PING

image-20220414171513238

  • 跟踪路由

image-20220414171557092

image-20220414171610922

tracert命令原理

image-20220414171833801

image-20220414171855816

image-20220414171941526

虚拟专用网VPN与网络地址NAT转换

虚拟专用网VPN(Vitual Private Network)原理

image-20220414191742050

image-20220414191821974

网络地址转换NAT的基本工作原理

image-20220414192114998

image-20220414192204052

image-20220414192257428

image-20220414192727631

image-20220414192548705

image-20220414192628486

运输层

计算机网络体系结构中的物理层、数据链路层以及网络层他们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信

运输层是实现主机之间应用进程和应用进程之间的通信。

image-20220414193210015

image-20220414195214642

image-20220414195240579

UDP和TCP的对比

UDP和TCP是TCP/IP协议体系结构运输层中两个重要协议

image-20220414195446240

UDP:用户数据报协议(User Datagram Protocol),适用于实时应用如IP电话、视频会议等

TCP:传输控制协议(Transmission Control Protocol),适用于文件传输等

  • UDP是无连接的,TCP是面向连接的

image-20220414195744249

  • UDP支持单波、多播以及广播;TCP仅支持单播

image-20220414195939930

  • 两个协议对应用报文的处理。UDP是面向应用报文的,TCP是面向字节流的。

image-20220414200200774

  • UDP是向上层提供无连接的不可靠协议;TCP是提供面向连接的可靠传输服务

image-20220414200454794

  • TCP支持可靠传输,流量控制,拥塞控制所以TCP报文段远大于UDP报文段

image-20220414200601541

TCP的流量控制

流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。

image-20220414203858993

当接收窗口的缓存数据得到释放有了空闲接收窗口缓存空间时

image-20220414204039995

TCP的拥塞控制

概念

image-20220414205509329

四种拥塞控制算法

image-20220414205733020

  • 慢开始:cwnd=1开始,依次增加所发数据窗口量,当增长到慢开始门限值是便开始调用拥塞避免算法

image-20220414210034775

  • 拥塞避免

image-20220414210817074

image-20220414210939819

image-20220414211227033

  • 快重传

image-20220414211410843

  • 快恢复

image-20220414211521232

image-20220414211754983

TCP超时重传时间的选择

超时重传时间的选择是TCP最复杂的问题之一

image-20220414212206397

超时重传时间RTO应该略大于往返时间RTT

image-20220414212511838

image-20220414213616708

TCP可靠传输的实现(三次握手四次挥手)

TCP基于以字节为单位的滑动窗口来实现可靠传输

image-20220414214037010

image-20220414214132291

image-20220414214339084

image-20220414214422690

image-20220414214601231

三次握手

TCP连接建立要解决以下三个问题

image-20220414215505076

关于三次握手的简单说明:

  • TCP服务器首先创建传输控制块存储TCP里的一些重要信息(TCP连接表、指向发送和接收缓存的指针、指向重传队列的指针、当前发送和接收序号等)然后进入监听(被动打开连接)
  • TCP客户进程也首先创建传输控制块(同上)
  • 然后在打算建立TCP连接时向TCP服务进程发送TCP连接请求报文 段并进入SYN-SENT(同步已发送状态),TCP连接请求报文段首部中的同步位SYN被设置为1,序号字段seq设置初始值x,作为TCP客户进程所选择的初始序号。 (主动打开连接)
  • TCP服务器进程收到TCP连接请求报文段后 如果同意建立连接则向TCP连接请求确认报文段,并进入SYN-RCVD(同步已接受状态)。该TCP请求确认报文段首部中同步为SYN和确认位ACK都设置为1,序号字段seq被设置了一个初始值y作为TCP服务进程所选择的初始序号,确认号字段ack的值被设置为x+1,这是对TCP客户进程seq所选择的初识序号的确认
  • TCP客户进程收到TCP连接请求确认报文段后,还要向TCP服务器发送一个普通的TCP确认报文段,并进入ESTABLISHED(连接以建立状态),该报文段首部ACK设置为1,表明这是一个普通的TCP确认报文段,序号字段seq=x+1,这是因为TCP客户进程发送的第一个seq报文段序号为x,ack=y+1,这是对TCP服务器进程所选择的初始序列的确认。服务器收到后也进入连接已建立状态

image-20220414215757602

思考为什么不能建立两次握手?

之所以采用三报文握手而不是二报文握手,这是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致TCP服务器进入连接已建立状态等待TCP客户端发送数据

image-20220414220008762

四次挥手
  • 数据传输结束后,TCP客户进程的应用程序通知T其主动关闭TCP连接,TCP客户进程会发送TCP连接释放报文段,并进入终止等待1状态(FIN-WAIT-1)。该报文段的首部中的终止位FIN和确认位ACK的值被置为1,表明这是一个TCP连接释放报文段,同时也对之前收到的报文段进行确认。序号seq=u,这里u等于TCP客户进程之前已经发送过的数据的最后一个字节的序号+1(请注意,TCP报文段规定即使不携带数据,也消耗掉一个序号),确认号ack=v,它等于TCP客户进程之前已收到的数据的最后一个字节的序号+1。
  • TCP服务器进程收到连接释放报文后即发出确认, 会发送一个普通的TCP确认报文段并进入关闭等待状态(CLOSE-WAIT)。该报文段中的ACK=1表示这是一个普通的确认报文段,序号seq=v,他等于服务进程之前发送的数据的最后一个字节的序号+1这也与它之前收到的TCP连接释放报文段中的确认号匹配,ack=u+1这是对TCP连接释放报文段的确认。TCP服务进程这个时候要通知高层应用进程这时候要断开与自己的TCP连接。此时,从TCP客户进程到TCP服务器进程这个方向的连接就释放了,这时的TCP连接属于半关闭状态,但是TCP服务器进程到TCP客户进程方向的连接还没有被关闭。TCP客户进程收到TCP服务进程的确认报文段后进入终止等待2状态(FIN-WAIT-2)。
  • 当TCP服务器进程没有数据要发送给 TCP客户进程后,其应用进程就通知TCP服务器释放连接。TCP服务进程发送TCP连接进程发送TCP连接释放报文段并进入最后确认状态。该报文段的首部中的终止位FIN和确认位ACK的值被置为1,表明这是一个TCP连接释放报文段,同时也对之前收到的报文段进行确认。现在假定seq=w,w等于TCP客户进程发送过的数据的最后一个字节的序号+1,同时还必须重复上次已经发送过的确认号ack=u+1。然后进入最后确认状态(LAST-ACK)
  • TCP客户进程收到了TCP服务器发来的连接释放报文 后,对该报文段发送普通的TCP确认报文段,之后进入时间等待状态(TIME-WAIT)。该报文段首部中的ACK的值被设置为1,表示这是一个普通的TCP确认报文段,seq=u+1表示这是TCP客户进程之前发送的最后一个字节为u,ack=w+1这是对所收到的TCP连接释放报文段的确认。 TCP服务进程收到该报文段后就进入关闭状态 (CLOSED)
  • TCP客户进程还要经过2MSL后才能进入关闭状态。 MSL的意思是最长报文段寿命(RFC793建议设置为2分钟)。

image-20220415112935634

思考:TCP客户进程在收到连接释放报文段后为什么不直接进入关闭状态

第一,为了保证TCP客户进程发送的确认报文到达了TCP服务进程。因为这个确认报文有可能会在传输过程中丢失,因而使服务进程一直收不到确认报文。

image-20220415113305545

第二,也可以防止已失效的连接请求报文段出现在本连接中。经过2MSL后,就可以使连接持续时间内所产生的所有报文段都从网络中消失。这样就可以使下一个新连接不会出现这种旧的连接请求报文段。

TCP中保活计时器的作用

image-20220415114145574

TCP报文段的首部格式

​ 为了实现可靠传输,TCP采用了面向字节流的方式。

​ 但TCP在发送数据时,是从发送缓存取出一部分或全部字节并给其添加一个首部并使之成为TCP报文段后进行发送。

​ 一个TCP报文段由首部数据载荷两部分构成

​ TCP的全部功能都体现在它首部中各字段的作用。

TCP报文段的首部格式:

image-20220415160051088

序号字段:如图,序号字段占32比特,取值范围是[0,2^32-1],序号增加到最后一个后,下一个序号就又回到0。指出本TCP报文段数据载荷的第一个字节的序号

image-20220415164054809

确认号字段:如图,确认号字段占32比特,取值范围是[0,2^32-1],序号增加到最后一个后,下一个序号就又回到0。用于指出期望收到对方下一个TCP报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认

确认表示位ACK:取值为1时确认号字段才有效;取值为0时确认号字段无效。TCP规定,在连接建立后所有哦传输的TCP报文段都必须把ACK置1

数据偏移:占4比特,并以4字节为单位。用来指出TCP报文段的数据载荷部分的起始处距离TCP报文段的起始处有多远。该字段实际上指出了TCP报文段的首部长度。(首部固定长度为20字节,因此数据偏移字段的最小值为(0101)2;加上40扩展字节首部最大长度为60字节因此数据偏移字段的最小值为(1111)2)

image-20220415170211388

窗口字段:占16比特,以字节为单位。指出发送本报文段的一方的接收窗口。窗口值作为接收方让发送方设置其发送窗口的依据。这是以接收方的接收能力来控制发送方式的发送能力,称为流量控制。发送窗口大小还取决于拥塞窗口和接收窗口值,两则取小。

同步标志位SYN:在TCP连接建立时用来同步序号。

终止标志位FIN:用来释放TCP连接。

推送标志位PSH:接收方的TCP收到该标志位为1的报文段会尽快上交应用进程,而不必等到接收缓存都填满后再向上交付。

紧急标志位URG: 紧急标志位URG=1时紧急字段有效;紧急标志位URG=0时紧急字段无效。

紧急指针:占16比特,以字节为单位,用来指明紧急数据的长度。

image-20220415172401323

image-20220415172513031

在浏览器地址栏中输入Web服务器的域名后发生的事情:

应用层

概述

image-20220415201525890

应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。

客户服务器方式和对等方式

客户服务器方式(C/S方式)

基于C/S方式的应用服务通常是服务集中型的,即应用服务集中在,网络中比客户计算机少得多的服务器计算机上。

image-20220415202419487

image-20220415202123303

P2P方式

image-20220415202537146

image-20220415202613176

动态主机配置协议DHCP

image-20220415203734312

image-20220415203422347

image-20220415203621340

image-20220415203708522

域名系统DNS

image-20220415204140263

image-20220415204327864

imoge-20220415204445845

因特网的域名空间

image-20220415204624707

image-20220415204843940

域名解析的过程

递归查询

image-20220415204950397

迭代查询

image-20220415205039881

image-20220415205124423

image-20220415205159847

文件传输协议FTP

image-20220415205628404

FTP的基本工作原理

image-20220415210129544

电子邮件

image-20220415214008508

SMTP的基本工作原理

image-20220415214324128

image-20220415214649941

image-20220415214743960

image-20220415214811747

邮件读取协议

image-20220415214912307

www万维网

超文本传输协议HTTP

1.0

image-20220415215852854

1.1

image-20220415220058890

http请求报文格式

image-20220415220244678

http响应报文格式

image-20220415220407722

image-20220415220526829

image-20220415220352392

image-20220415220839167

image-20220415220956808

posted @ 2022-04-15 22:14  凡间小王  阅读(335)  评论(0)    收藏  举报