计算机网络基础进阶

news2024/10/23 3:30:07
三次握手四次挥手

三次握手

1------建立连接----------------------2 ACK=1,seq=0

2------传输数据,建立连接---------1

1------传输数据,建立连接---------2

三次握手用于建立TCP连接,确保通信双方都准备好进行数据传输。整个过程涉及三次报文交换:

  1. 第一次握手(客户端发送SYN):
    客户端向服务器发送一个SYN(同步序列编号)请求,表示希望建立连接,同时带上一个初始序列号。
  2. 第二次握手(服务器发送SYN-ACK):
    服务器收到客户端的SYN请求后,回复一个SYN-ACK包。这个包表示服务器同意建立连接,并确认客户端的SYN,同时带上自己的初始序列号。
  3. 第三次握手(客户端发送ACK):
    客户端收到服务器的SYN-ACK包后,发送一个ACK(确认)包,确认服务器的SYN号。此时,双方都同意连接建立,TCP连接正式建立。

四次挥手

1--------断开连接--------------------------2 fin=1,ACK=1

2--------确认断开连接---------------------1

2--------若有数据传完正式断开连接-----1

1--------确认断开连接---------------------2

四次挥手用于断开TCP连接,确保双方都能够正常终止数据传输。它需要四次报文交换:

  1. 第一次挥手(客户端发送FIN):
    客户端发送FIN(结束标志)包,表示它已经完成数据传输,想要终止连接。
  2. 第二次挥手(服务器发送ACK):
    服务器收到FIN后,回复一个ACK包,确认客户端的FIN,但服务器此时可能还有数据要发送,因此连接暂时不会关闭。
  3. 第三次挥手(服务器发送FIN):
    当服务器也完成数据传输后,发送一个FIN包,表示它也准备好关闭连接。
  4. 第四次挥手(客户端发送ACK):
    客户端收到服务器的FIN后,发送一个ACK包,确认服务器的FIN。此时,连接完全关闭。

  • 三次握手是为了确保客户端和服务器都能正常建立连接。
  • 四次挥手则是为了保证双方能够妥善地关闭连接,避免数据丢失
网络通信

由于数据在二层封装时无法得知目标IP地址的MAC地址,导致二层的封装无法进行,所以产生了ARP( Address Resolution Protocol )

ARP缓存表是用来存放IP地址和MAC地址的映射关系。

ttl : TTL(Time to Live)是网络通信中用于限制数据包生存时间的一个字段。它的主要作用是防止数据包在网络中无限循环。

arp通告: ARP通告(ARP Announcement)是网络中使用ARP协议时的一种特殊的ARP请求,通常用来更新或确认网络中设备的IP地址和MAC地址的对应关系。

路由:目标地址 (主机路由,网络路由) 下一跳(网关) 最终实现

0.0.0.0/0.0.0.0:默认路由

A,B同一网络

A,B同一网络中通信,本地通信广播,获取mac地址 ARP广播协议

  • A发起通信请求:假设A想要与B通信,首先A会构建数据包,包含源IP地址(A的IP地址)、目标IP地址(B的IP地址)以及其他协议层信息。
  • 数据包封装与发送:数据包在发送之前会被封装,加入二层的MAC地址信息。A设备的网卡查找目标B的MAC地址(通常通过ARP协议查找B的MAC地址)。一旦获取B的MAC地址,A的网卡会将数据包发送到网络。
  • 交换机转发数据:假如A和B在同一个局域网中,数据包会通过网络中的交换机(如果有)进行转发。交换机会根据目标MAC地址查询其MAC地址表,找到B所在的端口,并将数据包转发到对应的端口。
  • B接收数据包:当数据包到达B时,B的网卡会检查目标MAC地址是否匹配自己的MAC地址。如果匹配,B的网卡会将数据包发送给操作系统。操作系统将解封装报文,解析并传递到上层的应用程序。

A,C不同网络通信,封装mac地址

  1. A发起通信请求:设备A想与设备C通信,首先A会构建一个包含源IP地址(A的IP地址)和目标IP地址(C的IP地址)的数据包。
  2. 数据包封装:数据包在发出前会封装成以太网帧,其中包含源MAC地址(A的MAC)和网关的MAC地址(而不是C的MAC,因为C不在同一个网络)。
  3. 数据包到达默认网关:数据包经过A所在的局域网,并通过交换机或其他网络设备,最终到达A的默认网关(通常是路由器)。
  4. 路由器转发:路由器会根据数据包中的目标IP地址(C的IP地址)查找路由表,确定数据包的下一跳(可能是另一个路由器或C所在的子网)。此时,数据包的源MAC地址更新为路由器的MAC地址,目标MAC地址更新为下一跳设备的MAC地址。
  5. 数据包到达C所在网络:数据包通过网络传输后,最终到达C所在的子网。在这里,数据包会被进一步转发,最终到达C设备。
  6. C接收数据包:设备C的网卡检查目标MAC地址是否匹配自己。如果匹配,C设备会接收并处理该数据包。

访问网站的全过程

1.DNS解析:将域名转化为地址,浏览器会查询本地缓存,找不到就向配置的DNS服务器发送查询请求,DNS会返回对应的IP地址

2.建立TCP连接,浏览器使用获得的IP地址和端口与百度服务器建立连接,三次握手

3.发送HTTP请求,TCP建立后,浏览器向服务器发送一个HTTP请求报文

4.服务器处理请求,百度的服务器收到请求后,会处理请求,查找相应的资源,处理完毕后,服务器会生成一个HTTP响应报文

5.发送HTTP响应,服务器将响应报文送回给客户端,响应报文中包含状态行,响应头,空行和响应体等

6.浏览器渲染页面:浏览器接收到HTTP响应后,解析HTML内容,下载并处理CSS、JavaScript和图片等资源。浏览器将页面内容呈现给用户。

7.断开连接,如果使用的是HTTP/1.0,连接在响应发送完毕后会立即关闭。如果使用的是HTTP/1.1,连接可以保持打开(Keep-Alive),以便复用同一连接发送更多请求。关闭连接需要进行四次挥手(Four-way Handshake)

linux主机接入到网络中:

本地通信:ip/netmask

跨网络通信:路由(网关)

基于主机名通信:DNS服务器地址(主DNS服务器地址。备用DNS服务器地址,第三DNS服务器地址)

网络接口命名方式

以太网:ethX
ppp网络:pppX

o<insdex>:集成设备的设备索引号
s<slot>:扩展槽的索引号
x<MAC>:基于mac地址的命名
p<bus><slot>:基于总线及槽的拓扑结构进行命名

配置方式

静态指定:命令或者修改配置文件
        ifcfg:ifconfig:配置IP,NETMASK
               route:路由
               netstat:状态及统计数据查看
        iproute2:ip add:地址和掩码  ip link:管理网络接口  IP route:路由
                  ss:状态及统计数据查看
         centos7引入了nm(Network Manager)命令:nmcli:命令行工具
                            nmutl:text window工具
         依赖:DNS服务器指定需要修改/etc/resolv.conf文件。
         配置文件:centos:/etc/sysconfig/network-scripts/ifcfg-网卡name
                 ubuntu:/etc/netplan/01-netcfg.yaml
动态分配:本地网络中有DHCP服务,DHCP动态分配ip地址

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

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

相关文章

使用 Git LFS(大文件存储)

Git LFS&#xff08;Large File Storage&#xff09;是一种扩展 Git 的工具&#xff0c;旨在更有效地管理大文件的版本控制。它通过将大文件的内容存储在 Git 之外来解决 Git 在处理大文件时的性能问题。 主要特点 替代存储&#xff1a;Git LFS 不直接将大文件存储在 Git 仓库…

C++类和对象 - 下【匿名对象,友元,static成员】

&#x1f31f;个人主页&#xff1a;落叶 &#x1f31f;当前专栏: C专栏 目录 ​编辑 再探构造函数 类型转换 static成员 友元 内部类 匿名对象 对象拷⻉时的编译器优化 再探构造函数 之前我们实现构造函数时&#xff0c;初始化成员变量主要使⽤函数体内赋值&#xff0c;…

Mac 远程 Windows 等桌面操作系统工具 Microsoft Remote Desktop for Mac 下载安装详细使用教程

最近需要在 Mac 上远程连接控制我的 windows 电脑系统&#xff0c;经过一番尝试对于 win 来说还是微软自家推出的 Microsoft Remote Desktop for Mac 最最好用&#xff0c;没有之一 简介 Microsoft Remote Desktop是一款由微软公司开发的远程桌面连接工具&#xff0c;可以让用…

Redis遇到Hash冲突怎么办?

这是小伙伴之前遇到的一个面试题&#xff0c;感觉也是一个经典八股&#xff0c;和大伙分享下。 一 什么是 Hash 冲突 Hash 冲突&#xff0c;也称为 Hash 碰撞&#xff0c;是指不同的关键字通过 Hash 函数计算得到了相同的 Hash 地址。 Hash 冲突在 Hash 表中是不可避免的&am…

开源图像超分ECBSR项目源码分析

相关介绍 项目GitHub地址&#xff1a;https://github.com/xindongzhang/ECBSR项目相关论文&#xff1a;https://www4.comp.polyu.edu.hk/~cslzhang/paper/MM21_ECBSR.pdf&#xff08;也可以点这里下载&#xff09;论文解读&#xff1a;Edge-oriented Convolution Block for Re…

CLion远程开发Ubuntu,并显示helloworld文字框

1.CLion的介绍以及其在远程开发上的优点 1&#xff09;CLion 是一个由 JetBrains 开发的跨平台 C/C 集成开发环境&#xff08;IDE&#xff09;&#xff0c;功能强大。 2&#xff09;CLion的优点&#xff1a; 远程工具链支持&#xff1a;CLion 支持通过 SSH 连接到远程 Ubuntu…

Unity--AssestBundles--热更新

使用Node.js搭建AssestBundle服务器并验证AB包热更新 一、服务器部分 使用NodeJs作为服务器&#xff0c; 使用Express为基础网页模版。 当然&#xff0c; 使用其他的FTP&#xff0c;http服务器也可以&#xff0c; 基础逻辑是存放资源的位置。 1.下载Node.js 下载地址:https…

【Python】NumPy(二):数组运算、数据统计及切片索引、广播机制

目录 Numpy数组 数组的基本运算 乘法 加法 数组的数据统计 平均值 中位数 最大值和最小值 求和 累积和 标准差 方差 切片和索引 索引 一维数组的索引 二维数组的索引 获取多个元素 布尔索引 切片 一维数组切片 二维数组切片 多维数组切片 广播机制 规则 …

本地生活便民信息服务小程序源码系统 PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程

系统概述 地方门户分类信息网站源码系统是一个基于PHP和MySQL开发的强大平台&#xff0c;旨在帮助用户轻松搭建地方性的分类信息网站。该系统集成了众多实用功能&#xff0c;支持用户自由发帖、浏览和搜索各类信息&#xff0c;如二手交易、求职招聘、房屋租售、生活服务、商家…

【java】抽象类和接口(了解,进阶,到全部掌握)

各位看官早安午安晚安呀 如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 大家好我们今天来学习Java面向对象的的抽象类和接口&#xff0c;我们大家庭已经来啦~ 一&#xff1a;抽象类 1.1:抽象类概念 在面向对象的概念中…

练习题(动态规划)

一&#xff0c;最长上升子序列2 题目&#xff1a; 思路分析&#xff1a; 之前的最长上升子序列的时间度是O(n^2)&#xff0c;同时集合划分是按以第 i - 1 个数是几来划分的&#xff0c;状态转移方程也很简单是 f[i] f[j] 1 &#xff0c;最后取所有一个max 那怎么优化呢&am…

ST7789读取ID错误新思路(以STC32G为例)

1.前言 前两天刚把ST7789写入搞定&#xff0c;这两天想折腾一下读取。最开始是读ID&#xff0c;先是用厂家送的程序&#xff0c;程序里面用的是模拟I8080协议&#xff0c;一切正常。后来我用STC32G的内置LCM模块&#xff0c;发现读取不出来。更神奇的是ID读不出来&#xff0c;…

【AIGC】AI如何匹配RAG知识库: Embedding实践,语义搜索

引言 RAG作为减少模型幻觉和让模型分析、回答私域相关知识最简单高效的方式&#xff0c;我们除了使用之外可以尝试了解其是如何实现的。在实现RAG的过程中Embedding是非常重要的手段。本文将带你简单地了解AI工具都是如何通过Embedding去完成语义分析匹配的。 Embedding技术简…

HTB:Headless[WriteUP]

目录 连接至HTB服务器并启动靶机 1.Which is the highest open TCP port on the target machine? 2.What is the title of the page that comes up if the site detects an attack in the contact support form? 使用浏览器访问靶机5000端口 3.What is the name of the …

海量数据在有限资源上处理的方法

1. 使用哈希 适用场景&#xff1a;需要处理的数据中&#xff0c;相同的数据可以分配到同样的机器/文件进行处理。 技巧总结&#xff1a;相同的数会哈希到同一个位置上 这类题目一般面试官给的描述都不是很清晰&#xff0c;需要自己去问条件、然后给出方案。 回答思路是&#…

hdfs的客户端(big data tools插件)

1.下载hadoop的压缩包在Windows,后解压 2.下载hadoop.dll文件和winutil.exe文件(网上自行查找) 下载完把这两个文件放入hadoop的bin目录 3.设置环境变量: $HADOOP_HOME指向hadoop的文件夹 4.在jetbrains公司的软件里下载big data tools插件:(在此展示的idea的) 下载完重启ide…

AI金融攻防赛:YOLO模型的数据增强与性能优化(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。在前一篇文章中&#xff0c;我们详细介绍了如何在金融场景凭证篡改检测中应用YOLO算法。本文将在此基础…

深入了解Spring重试组件spring-retry

在我们的项目中&#xff0c;为了提高程序的健壮性&#xff0c;很多时候都需要有重试机制进行兜底&#xff0c;最多就场景就比如调用远程的服务&#xff0c;调用中间件服务等&#xff0c;因为网络是不稳定的&#xff0c;所以在进行远程调用的时候偶尔会产生超时的异常&#xff0…

渗透测试实战—教育攻防演练中突破网络隔离

免责声明&#xff1a;文章来源于真实渗透测试&#xff0c;已获得授权&#xff0c;且关键信息已经打码处理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本…

3.matplotlib基础及用法(全)

一.基础绘图 折线图plot散点图scatter柱状图bar饼图pie 二.图表设置 设置标题设置线条设置坐标轴添加图例添加注释设置画布大小与分辨率 三.高级功能 绘制子图保存图形 一.基础绘图 1.折线图plot import matplotlib.pyplot as plt x [1, 2, 3, 4, 5] y [2, 3, 5, 7, 11] pl…