计算机网络知识点面试总结4

#来自ウルトラマンゼロ(赛罗)

1 传输层提供的服务

1.1 功能

传输层向它上面的应用层提供通信服务,它属于面向部分的最高层,同时也是用户功能中的最底层。

为运行在不同主机上的进程之间提供了逻辑通信。

传输层的功能:

  • 提供应用进程之间的逻辑通信(即端到端的通信)
  • 复用和分用
    • 复用:应用层所有的应用进程都可以通过传输层再传输到网络层
    • 分用:传输层从网络层收到数据后交付指明的应用进程
  • 对收到的报文进行差错检测
  • 提供两种服务,面向连接 TCP 和 无连接的 UDP

1.2 寻址与端口

端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的。

端口号:

  • 服务端的使用的端口号
    • 熟知端口号:0 - 1023
    • 登记端口号:1024 - 49151
  • 客户端使用的端口号:仅在客户进程运行时才动态选择的端口号:49152 - 65535

套接字:唯一标识了网络中的一个主机和它上面的一个进程,socket = (主机IP地址,端口号)

1.3 无连接服务与面向连接服务

  • 面向连接:通信双方在通信之前,先建立连接,在通信过程中,会一直监控和管理
  • 无连接:不需要先建立连接

TCP/IP协议族传输协议:

  • 面向连接的传输协议控制协议(TCP):全双工的可靠逻辑信道
  • 无连接的用户数据报协议(UDP):提供一条不可靠的逻辑信道

TCP/IP协议:

  • TCP提供面向连接的可靠传输协议,增加了许多开销,如确认、流量控制、计时器及连接管理
  • TCP适用于可靠的场合,如 FTP、HTTP、TELNET

UDP协议:

  • 在 IP 上提供两个附加服务:多路复用、对数据的错误检查
  • 远程主机收到UDP报文后,不需要给出任何确认、
  • 适用于 :TFTP、DNS、SNMP、RTP

1.4 注意

IP数据报和UDP数据报:

  • IP数据报在网络层要经过路由存储转发
  • UDP数据报的信息对路由不可见,在传输层的端到端的逻辑信道中传输,封装成IP数据报在网络层中传输。

TCP 和 网络层虚电报:

  • TCP报文段在传输层抽象的逻辑信道中传输,对路由不可见。
  • 虚电路所经过的交换结点都必须保存虚电路状态信息,在网络中若采用虚电路方式,则无法提供无连接服务,而传输层采用 TCP 不影响网络层提供无连接服务。

2 UDP 协议

2.1 UDP 数据报

UDP 优点:

  • 无须建立连接
  • 无连接状态
  • 分组首部开销小

特点:

  • 常用于一次性传输较少数据的网络应用,如 DNS、SNMP
  • 尽最大努力交付,不保证可靠交付
  • 面向报文

UDP 的首部格式:

  • 源端口
  • 目的端口
  • 长度
  • 检验和

2.2 UDP 校验

只校验和检查首部和数据部分。

3 TCP 协议

1.1 特点

  • 面向连接(虚连接)的传输层协议
  • 点对点
  • 可靠交付服务、不丢失、不重复
  • 全双工通信
  • 面向字节流

1.2 TCP 报文段

1.3 TCP 连接管理

TCP 连接管理就是使运输连接的建立和释放都能正常进行。

连接阶段:连接建立、数据传送、连接释放

1.3.1 三次握手

客户机 TCP 首先向服务器 TCP 发送一个连接请求报文段(SYN = 1, seq = x)

服务器 TCP 收到连接请求报文段,如同意,发送确认(SYN = 1,ACK = 1,seq = y,ack = x + 1)

客户机收到确认报文段后,向服务器给出确认,(ACK = 1,ack = y + 1,seq = x + 1)

//三次握手
A:有件事不知当讲不当讲B:讲
A:MMP//四次挥手
A:我讲完了B:好,我来讲B:MMP,我讲完了
A:好
1.3.2 四次挥手

客户机向其 TCP 发送一个连接释放报文段,并停止发送数据,主动关闭 TCP 连接(终止位 FIN = 1,seq = u)

服务器收到连接释放报文段后即发出确认,客户到服务器这个方向的连接解决释放了-半关闭(ACK = 1,seq = v,ack = u + 1)

服务器通知客户端 TCP释放连接,主动关闭TCP连接(FIN = 1,ACK = 1,seq = w,ack = v + 1)

客户机收到连接释放报文后,发出确认(ACK = 1,seq = u + 1,ack = w + 1)

1.4 SYN 洪泛攻击

当服务器返回 ACK ,攻击者不确认,一直耗着,占用 CPU 资源。

1.5 可靠传输(实现机制)

  • 序号
  • 确认
  • 重传(超时、冗余 ACK)

1.6 TCP 流量控制

匹配发送方的发送速率与接收方的读取速率

1.6.1 流量控制机制

基于滑动窗口协议。

实现:

  • 限制发送方向网络注入报文的速率,接收方根据自己接收缓存大小,动态调整发送方的发送窗口(接收窗口 rwnd)
  • 发送方根据其到当前网络拥塞程序的估计而确定的窗口值,这称为拥塞窗口 cwmd,其大小与网络的带宽和时延有关

1.7 TCP 拥塞控制

防止过多的数据注入到网络中。

1.7.1 慢开始 拥塞避免

慢开始:每经过一个传输轮次(往返时延RTT),拥塞窗口 cwnd 就会加倍

拥塞避免:发送端窗口 cwnd 每经过一个往返时延 RTT 就会增加一个 MSS 的大小

1.7.2 快重传 快恢复

快重传:当收到连续的三个重复的 ACK,直接重传对方期待的的报文

快恢复:当收到连续的三个冗余 ACK,令 ssthresh = cwnd = cwnd / 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react中如何避免父子组件同时渲染(memo的使用)

1.需求说明 react的渲染机制是父子组件同时渲染,不管子组件是否有变化只要父组件重新渲染了子组件就跟着重新渲染。为了避免不必要的消耗,我们可以使用memo钩子函数 2.使用memo前展示 import { memo,useState } from "react"function Son()…

20240728 每日AI必读资讯

Google Gemini 聊天机器人更新 可以免费使用Gemini 1.5 Flash 1. 引入Gemini 1.5 Flash模型: • 提供更快和更高质量的响应。 • 提升推理和图像理解能力。 • 上下文窗口扩大到 32Ktokens,允许进行更长的对话和处理更复杂的问题。 • 即将支持通过 Goo…

深入理解计算机系统 CSAPP 练习题12.4

我们每次都用read_set初始化ready_set是因为我们每次都处理read_set里的描述符,这是我们希望服务器做的事情.每次一有描述符3或描述符0,select函数会更新ready_set ,我们判断更新后ready_set的情况.然后干对应的事. 由此可以看到select函数的神奇之处,它把一个复杂的事情简单化…

软件测试---网络基础、HTTP

一、网络基础 (1)Web和网络知识 网络基础TCP/IP 使用HTTP协议访问Web WWW万维网的诞生 WWW万维网的构成 (2)IP协议 (3)可靠传输的TCP和三次握手策略 (4)域名解析服务DNS &#xff0…

Vue3-拉开序幕的setup

Vue3 中的 setup 是一个新的配置项&#xff0c;值是一个函数。 export default {name: App,setup: function () {} } </script> 和 Vue2 中的 data 一样&#xff0c;我也可以将 setup 简写成为 export default {name: App,setup() {} } setup函数的使用 与 Vue2 不一样…

详细介绍MLP的原理

什么是MLP MLP&#xff08;Multi-Layer Perceptron&#xff09;&#xff0c;即多层感知机&#xff0c;是一种前馈型人工神经网络。它由一个输入层、一个输出层以及至少一个隐藏层&#xff08;输入层和输出层中间的层&#xff09;组成。每个神经元&#xff08;或称为节点&#x…

【Django】 js实现动态赋值、显示show隐藏hide效果

文章目录 需要达到的前端效果预览&#xff1a;实现步骤复制bootstrp代码&#xff08;buttons&#xff09;复制bootstrp代码&#xff08;Alert警告框&#xff09;写js测试效果 需要达到的前端效果预览&#xff1a; {% load static %} <!DOCTYPE html> <html lang"…

十分钟速通 MySQL —— CRUD

表格的结构 在之前的课程中我们已经学习了关系型数据库的表格&#xff0c;我们再来回顾-下表格由哪些元素构成 表由表名、行、列、列名构成表名是表的名称列名表示列的名字&#xff0c;列名不可以重复表格实质上是一个二维数组&#xff0c;行和列都是从0开始数的(数组的特性) …

【软考】广义表

目录 1. 说明2. 基本操作3. 特点4. 存储结构5. 例题5.1 例题1 1. 说明 1.广义表是线性表的推广&#xff0c;是由0个或多个单元素或子表组成的有限序列。2.广义表与线性表的区别在于:线性表的元素都是结构上不可分的单元素&#xff0c;而广义表的元素既可以是单元素&#xff0c…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第六十二章 定时器按键消抖实验

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

shardingsphere的学习(一):shardingsphere的基本概念和水平分表例子

简介 关于shardingsphere的基本相关概念的学习和使用shardingjdbc进行水平分表的例子 shardingsphere 是一套开源的分布式关系型数据库中间件解决方案&#xff0c;由sharding-jdbc&#xff0c;sharding-proxy&#xff0c;sharding-sidecar三个项目组成。 定位为关系型数据库…

日期类的实现(C++实现)

完整呈现 Date.h #include <iostream> using namespace std; //日期类 class Date { public:int GetMonthDays(int year, int month) const;//构造函数Date(int year 0, int month 1, int day 1);//拷贝构造Date(const Date& d);//打印void Print();//析构函数~…

Redis与MySQL数据一致性问题的策略模式及解决方案

目录 一、策略模式 1、旁路缓存模式&#xff08;Cache Aside Pattern&#xff09; 2、读写穿透&#xff08;Read-Through/Write-Through&#xff09; 3、异步缓存写入&#xff08;Write Behind&#xff09; 二、一致性解决方案 1、缓存延迟双删 2、删除重试机制 3、读取…

【python】sklearn基础教程及示例

【python】sklearn基础教程及示例 Scikit-learn&#xff08;简称sklearn&#xff09;是一个非常流行的Python机器学习库&#xff0c;提供了许多常用的机器学习算法和工具。以下是一个基础教程的概述&#xff1a; 1. 安装scikit-learn 首先&#xff0c;确保你已经安装了Python和…

Unity 资源 之 Pop It 3D 解压玩具与双人AI游戏 Unity 资源包分享

精彩呈现&#xff1a;Pop It 3D 解压玩具与双人AI游戏 Unity 资源包分享 一、Pop It 3D 解压玩具的魅力二、双人游戏的互动乐趣三、Unity 游戏资源包的优势四、如何获取资源包 亲爱的游戏爱好者们&#xff0c;今天为大家带来一款令人兴奋的游戏资源——Pop It 3D 解压玩具双人带…

数字陷波器的设计和仿真(Matlab+C)

目录 一、数字陷波器的模型 二、Matlab仿真 1. 示例1 2. 示例2 三、C语言仿真 1. 由系统函数计算差分方程 2. 示例代码 一、数字陷波器的模型 二、Matlab仿真 1. 示例1 clear clc f0=100;%滤掉的100Hz fs=1000;%大于两倍的信号最高频率 r=0.9; w0=2*pi*f0/fs;%转换到…

[图解]《分析模式》漫谈19-Midjourney、Sora

1 00:00:02,360 --> 00:00:03,360 今天的漫谈 2 00:00:03,370 --> 00:00:04,560 我们来说一下 3 00:00:04,570 --> 00:00:08,720 人工智能&#xff0c;还是前言 4 00:00:08,890 --> 00:00:11,840 这里有一句话 Kent Beck 5 00:00:12,630 --> 00:00:13,750 W…

Spring Boot配置文件的语法规则

主要介绍两种配置文件的语法和格式&#xff0c;properties和yml 目录 1.配置文件的作用 2.创建配置文件 3.properties语法 4.yml语法 5.配置文件格式 1.配置文件的作用 对于配置文件&#xff0c;也有独立的文件夹去存放&#xff0c;主要用来存放一些需要经过变动的数据&a…

python绘制方波信号

python绘制方波信号 1、效果 2、导入库 pip install numpy pip install matplotlib3、实现代码 # -*- coding: utf-8 -*-""" @contact: 微信 1257309054 @file: test.py @time: 2024/7/28 14:48 @author: LDC """ import numpy as np import …

IOS-04 Swift 中数组、集合、字典、区间、元组和可选类型

在 Swift 编程语言中&#xff0c;数据结构和类型的合理运用对于高效编程至关重要。接下来&#xff0c;我们将深入探讨数组、集合、字典、区间、元组和可选类型的相关知识。 一、数组&#xff08;Array&#xff09; &#xff08;一&#xff09;元素定义 可以通过多种方式定义数…