首页 > 其他分享 >计算机网络基础进阶

计算机网络基础进阶

时间:2024-10-15 17:46:47浏览次数:9  
标签:进阶 基础 地址 计算机网络 MAC IP地址 服务器 数据包 连接

三次握手四次挥手

三次握手

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地址

标签:进阶,基础,地址,计算机网络,MAC,IP地址,服务器,数据包,连接
From: https://blog.csdn.net/weixin_66575196/article/details/142957528

相关文章

  • 第1节 计算机基础知识
    如何测试:1.需求测试,2.界面测试3.功能测试4.可靠性测试5.可移植性测试6.兼容性测试7.易用性测试8.安全性测试9.性能角度购物车:1.需求说明书2.界面排版(网格、卷轴)、按键图标大小颜色,3.功能测试添加、删除、结算,进入店铺4.可靠性各种网络条件和温度的影响5.可移植性......
  • 计算机网络常见面试题总结(上)
    目录计算机网络基础网络分层模型常见网络协议计算机网络基础网络分层模型OSI七层模型是什么?每一层的作用是什么?OSI七层模型是国际标准化组织提出的一个网络分层模型,其大体结构以及每一层提供的功能如下图所示:每一层都专注做一件事情,并且每一层都需要使用下一层提......
  • 【SD基础】Stable Diffusion 提示词万能公式&插件&词库
    提示词公式对于StableDiffusion来说,提示词(又或者说“关键词”)是输入项,并且输入英文,StableDiffusion只能输入英文并且被AI理解,转换为向量然后进行生成。合适的提示词可以生成你所想要的画面,如果画面不尽人意,那么大概率是提示词的问题,不合适的提示词会被AI曲解,那么这个时候......
  • 软件开发----Java基础每日刷题(转载于牛客)
    1.        A 是抽象父类或接口, B , C 派生自 A ,或实现 A ,现在 Java 源代码中有如下声明:1. A a0=new A();2. A a1=new B();3. A a2=new C();问以下哪个说法是正确的?()A        第1行不能通过编译B        第1、2行能通......
  • JavaSE JAVA基础总结(一) 我的学习笔记
    JavaSEJAVA基础总结(一)一、Java基础语法1.数据类型2.运算符3.选择结构4.循环结构5.数组6.方法7.递归二、面向对象1.面向对象编程(1)为什么要学习面向对象(2)面向过程与面向对象区别(3)对象(4)类(5)成员变量与局部变量的区别(6)构造器(7)this的关键字(8)标准JavaBean(9)静态关键字:static......
  • 【Linux】基础IO(文件系统)
     ......
  • 【高频SQL基础50题】36-40
    回到SQL.目录1.员工奖金2.每月交易I3.只出现一次的最大数字4.最后一个能进入巴士的人 5.2016年的投资​1.员工奖金连接题。#WriteyourMySQLquerystatementbelowSELECTt1.name,t2.bonusFROMEmployeet1LEFTJOINBonust2ONt1.empId=t2.empIdWHER......
  • Linux 基础指令的使用
    1.mkdir创建文件夹在当前用户的桌面创建一个自己名字的文件夹cd~/桌面mkdirwanghuanls2.touch创建文件在自己名字目录下,新建一个1.c和2.c文件,新建一个test目录cdwanghuantouch1.ctouch2.cmkdirtest3.mv移动文件将1.c文件移到test目录下mv1.......
  • openlayers基础篇2
    1.地图事件(实现点击地图新增点,实现飞行视角--漫游以及点击复位)效果如下(点击三下地依次出现三个点)<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <me......
  • js简单基础笔记
    一 .js特点1. Js是一门解释型语言,不用编译,而是直接执行2. js是一门动态语言,其中的任何内容都是不确定的3. 语法结构和Java,c都很像4. ​  js是一门面向对象的语言5.js严格区分大小写二 .js使用1.  标签使用 在html中的script标签中就可以编......