TCPIP网络基础知识

article/2025/9/18 7:22:21

1、OSI七层模型及数据传输过程

 

物理层

解决问题:实现两台机器互联,机器和机器之间是怎么通信?

1.两台机器互联的物理链路,物理介质。网线(双绞线)光纤、无线电波---基本连接

2.存在形式:01001二进制形式存在,电信号、比特流

数据链路层

解决问题:01010比特流其实是没有什么意思的数据,变成有意义的数据呢?确认这个数据是发给我的呢?

  1. 比特流进行处理:分组。8位为一组,一个字节,依次按顺序发送数据。

  2. 数据格式:帧

  3. 定义发送地址,MAC地址---网卡--身份证,唯一的。寄件人地址(源MAC地址)----收件人地址(目的MAC地址)

网络层

解决问题:主机A-B-C-D-E--主机F??路径很多条,怎么选择最优路?要怎么知道对方的MAC地址?

  1. 怎么知道对方的MAC地址? ---ARP协议(address resolution Protocol),通过IP地址知晓MAC地址

  2. 判断是否在同一个子网,怎么判断?---IP协议

  3. 路径很多,怎么选择最优路径?---一组协议 路由协议,动态路由协议(RIP,OSPF,BGP)。

  4. 数据格式:数据包

传输层

解决问题:发送数据多,数据包很大需要很长时间??中间网络中断,重传??数据包是否完整的,正确的?

  1. 对发送的数据进行封装---TCP协议,UDP协议,使数据包一个一个按顺序依次发送

  2. 两个应用通信(qq--qq),怎么判断是用qq来回应的呢,而不是其他应用程序呢,-----定义端口的概念,通过端口寻找对应的程序,对应的进行数据处理。

会话层

解决问题:断点续传功能

  1. 可以从校验点继续恢复数据进行重传,适用大文件

  2. 自动收发,自动寻址的功能

表示层

解决问题:操作系统win mac linux 语法不一样,不同系统之间进行通信

  1. 翻译工作,提供一种公共语言,通信。

应用层

解决问题:字节流格式,不好识别,不好操作。

  1. 定义了各种应用协议,规范数据格式: HTTP协议,HTTPs协议,FTP协议,DNS协议,TFTP,SMTP协议等等

四层和七层对比

 

数据链路层也叫网络接口层

TCP/IP四层协议比较常用

数据传输过程

 

2、网络层协议重点协议--ARP IP 路由协议

ARP协议

ARP协议概念

地址解析协议,实现通过对方的IP地址(域名)寻找对方的MAC地址

ARP工作流程

 

想象成

 

  1. 主机A首先查看自己的ARP表,如果找到了主机B的MAC地址,则直接对IP数据包进行帧封装,发送给主机B。

  2. 如果主机A在ARP表里面没有找到主机B的MAC地址,则将缓存改数据报文,然后以广播的方式发送一个ARP请求报文。ARP请求报文中带上源IP地址和源MAC地址(主机A),目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。广播,该网段上的所有主机都可以接收到该请求,但是只有被请求的主机(即主机B)会对该请求进行处理。

  3. 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址

  4. 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

ARP表查询

命令:arp -a

 

动态: ARP协议学习存储的

静态: 本地配置的

 

IP协议

解决问题:判断两台主机是否在一个局域网内,是否可以通信

IP协议概念

IP(Internet proto):分配给用户上网使用网络协议的设备的数字标签,分为两大类: IPV4 和IPV6

IPV4:32位,表示方式:二进制: 十进制:192.168.1.1

 

 

路由协议

概念

一组协议,指定数据包转发方式的网上协议。

静态路由: 目的地址----指定下一跳(有谁去帮你去转发)----默认路由(0.0.0.0 0.0.0.0---匹配所有,主机--默认网关)

0.0.0.0 0.0.0.0---匹配所有: 无论是访问百度,还是京东,都是经过默认网关转发出去

默认网关的概念: 主机发送的消息都会发给默认网关的主机,这个主机决定怎么广播处理消息

动态路由协议(RIP(v1 v2), OSPF, BGP)配置网络拓扑,配置之后,动态学习路由条目,学习形成路由表

路由表

路由协议查找的表 route print 命令

 

在链路上: 直连在网络上,我自己直接可以连接的,不需要通过路由转发

3、传输层重点协议--TCP UDP

TCP协议

概念

TCP(transmission control protocol)传输控制协议,就是要对数据的传输进行一定的控制。

形式:类比打电话场景,需要建立连接

tcp报文段

 

序号seq(sequence num):tcp数据包的编号,tcp数据包过大的时候,会分段(1,2,3,4),分段后要重组,此序号用于重组。seq==1 表示分段后的第一个数据包

确认号ack (acknowledge num):存在于确认消息里,依据序号编的 ack ==2(seq+1=1+1=2 )表示我已经收到了序号为1的包,我服务器期望收到你的下一个包的序号是2。

状态控制码6个标志位(code control flag)信号灯 1 亮 0 灭

  • ACK (acknowledge缩写) 确认位(确认消息包):=1 表示这个消息是一个确认消息

  • RST(reset缩写)重置:=1 表示这个消息释放连接。tcp连接出现错误--主机服务器崩溃,断开连接。如果要发消息,需要重新建立连接。

  • SYN(synchronous)同步(发送请求消息包): =1 表示:1、这个消息是一个发起连接的消息; 2、这个消息是一个确认接受连接消息。

  • FIN(final)终止:=1 表示发送报文结束了,完毕了,释放这个连接。(正常发送数据结束,区别RST,FIN如果被至为1,则表示4次挥手要开始了)

TCP建立连接(3次握手)

TCP三次握手

 

类比两个人初认识过程:

 

TCP断开连接(4次挥手)

TCP四次挥手

类比两个人分手过程:

 

 

UDP协议

概念

UDP协议(user datagram protocol) : 用户数据协议

形式:类比发短信场景,不会建立连接

  • 不靠谱协议,可能会丢包,出错是被允许的

  • 不需要可靠机制的场景,传输速度快,比较适用udp协议

  • 资源消耗特别小

  • 代表性基于udp协议的协议:dns(域名解析协议),snmp、 dhcp(动态获取ip 地址),rip(动态路由协议)

  • 代表性基于tcp协议的协议:http、 https、 ftp

 

TCP 和UDP的对比

 

4、应用层重点协议--HTTP

概念

HTTP(Hyper Text Transfer Protocol) 超文本传输协议

  • http协议是基于tcp协议,默认端口是80端口---可靠协议

  • 功能:用来规定客户端和服务器端的数据传输格式

  • 特点:基于请求与响应模式的、无状态、无连接的应用层协议

    • 无连接特点

      • 限制每次连接只处理一个请求。

      • 服务器处理完客户的请求,并受到客户的应答后,即断开连接。

      • 初衷: 用户量(十万,上百万)页面请求,单个用户间歇性打(突发性,瞬时性),数据没有关联性,----资源浪费 ----设计为:释放连接

      • 问题: 网页越来越复杂,--图片--效率低---解决办法---connection: keep-alive(保持请求一个长连接,再次请求的时候,不需要重新建立连接)

        • keep-alive

          • 开启:connection: keep-alive ,会发起keep-alive的连接请求。http 1.1版本,该开关默认打开。

          • 关闭: connection: close , 即可关闭

          • 设置连接时间:在http header 中设置Keep-Alive:timeout=5,max=1000

            • timeout=5(超时时间,单位秒,超过这个时间后就断开连接)

            • max=1000 (最多连接次数,若超过这个次数后强制断开连接)

    • 无状态特点

      • 对事物处理没有记忆能力,服务器不知道客户端是什么状态;给服务器发送http请求之后,服务器回应之后,不会有任何记录

      • 每个请求都是独立的

      • 服务器处理后续请求--前面请求的信息---重传

        • 优点:释放了服务器压力,不需要额外的记录信息,保存处理动作

        • 缺点:重传--重复的请求--增大数据量--资源的浪费,执行效率低

        动态交互: 淘宝--购物车--商品信息;login--后续操作(充值)----cookies session

      • cookies: 将前面的请求信息保存成一个临时文件---cookies值,存放在浏览器里。购物车:不同商品信息写入cookies,登录:可以把登录的账号信息存入cookies中

        • 关闭浏览器, cookies被删除,也可以手动清除

      • session: 永久的cookies值。sessionId(会话编号)---保存在服务器上,保存在内存中 ---同时把这个sessionId传递给客户端

        • 资源占用问题。设置session超时时间,清除sessionid。

           

http请求

四部分:

  1. 请求行(请求方法,URL统一资源定位符,http版本信息)

  1. 请求头部

     3. 空一行  表示请求头部结束

    4. 请求体

 

http响应

四部分:

  1. 响应行 (http版本 http状态 状态原因描述)

状态码:

  • 1xx 接受的请求正在被处理

  • 2xx 请求正常处理完毕

    • 200 请求处理成功

  • 3xx 重定向

    • 302重定向

    • 304 缓存,没有改动,不处理

  • 4xx 客户端的问题导致的错误

    • 404 页面不存在,网址错误

    • 415 是content-type 不对

  • 5xx 服务器的问题导致的错误

    • 503 服务不可达,服务崩溃,服务没有起

2、响应头部

  1. 空一行

表示响应头结束

  1. 响应体

 

5、应用层重点协议--HTTPS

问题: http协议发送的数据都是明文的;中间可能有第三者进行窃听,截取数据包,篡改数据,伪装成客户端和服务器交互,服务器端没有任何机制确定客户端身份,客户端也没有什么机制确定服务器身份,存在安全隐患

解决:为了解决这种安全隐患,所以出现https协议。http+ssl=https

概念

HTTPS(hypertext transfer protocol Secure) 超文本传输安全协议,是以安全为目标的http通道,简单讲就是http的安全版,它加密数据并确保其机密性,数据密文是加密过的;可保护用户在与网站交互时免于窃取个人信息和计费数据---身份认证---保证信息的完整性。

默认端口:443

(三个安全保障)http+加密+身份认证+数据完整性=https

 

加密、身份认证、数据完整性的三个安全保障是通过ssl实现,具体是怎么实现的呢,看实现过程和原理如下:

 

http消息会在建立安全通道的基础上进行传输

真是交互过程

SSL协议版本:SSLv3 、TLS1.0 、TLS1.2

wireshark抓包https 流程

加密的交互报文:抓包工具是看不到的

加密:通过秘钥实现

身份认证:通过证书实现(证书申请是需要费用的),单向认------server发给客户端的证书, 也可以双向认证。

完整性保护:选出一组加密算法,一组哈希算法,哈希算法把摘要信息计算出一个哈希值。验证消息的完整性。客户端摘要信息=服务端摘要信息---数据没有被篡改。

 

6、HTTP vs HTTPS

尊重原创,如要转载,请注明出处:“转载自:https://blog.csdn.net/weixin_54280625”,作者保留著作权!谢谢!

软件测试开发交流群   458609378   免费领取测试资料 互助学习

 


http://chatgpt.dhexx.cn/article/1T8OFJjE.shtml

相关文章

【计算机网络】计算机网络基础知识

计算机网络基础知识 博主自述一.计算机网络基础1. 计算机网络发展阶段1.1 计算机网络拓扑图 2. 数据通信基础2.1.信息数据概念2.2数据传输类型2.3传输介质2.4数据编码2.5差错控制 3.传输网相关技术3.1 传输网的基础概念3.2 广域网相关技术3.3 局域网相关技术3.4宽带域域网相关技…

网络一些基础知识

参考: 1. 一文搞懂TCP与UDP的区别 2. Android中的http和https通信 3. HTTP Headers状态码(status)主要字段属性详解 4. HTTP1.0、HTTP1.1、HTTP2.0、HTTPS的区别 5、HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍 6、TCP的三次握手与四次挥手理解及面试题&#…

计算机网络基础知识总结,就这一篇了

如果说计算机把我们从工业时代带到了信息时代,那么计算机网络就可以说把我们带到了网络时代。随着使用计算机人数的不断增加,计算机也经历了一系列的快速发展,从大型通用计算机 -> 超级计算机 -> 小型机 -> 个人电脑 -> 工作站 -…

100 个网络基础知识

关注星标,每天学习C语言新技能 因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 来源:网络 1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型…

网络基础知识总结

基础知识: 什么叫网络? 网络是信息传输、接受、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。 什么是IP地址? 概念: IP协议提供的一种统一的地址格式,它…

计算机网络技术的就业规划,计算机网络技术职业生涯规划书前言

010在线为您甄选多篇描写计算机网络技术职业生涯规划书前言,计算机网络技术职业生涯规划书前言精选,计算机网络技术职业生涯规划书前言大全,有议论,叙事 ,想象等形式。文章字数有400字、600字、800字....缓存时间: 2021-06-15 在今…

计算机应用职业的外部环境,完整的职业生涯规划书范文

完整的职业生涯规划书范文 我们大学生应尽早进行职业生涯规划,最好从我们步入大学校园就开始。以下为大家分享的是完整的职业生涯规划书范文,希望对大家有所帮助。 前言 时光飞逝,不知不觉我已走到20岁的年轮边界。作为一名电子信息工程专业的…

web技术基础---网站设计说明书

《Web技术基础》 第1章 网站的规划 1.1.1 网站的定位 品味咖啡店网站整体上给人一种舒适、温馨的氛围,网页整体上呈现咖啡色、白色这种色调能带给人轻松、温暖的感觉,符合咖啡店主题。 1.1.2 网站板块的设置 网站的板块从整体上分为主页和副页。主要分…

职业生涯规划书-前端

写在前面 文章中部分图片来源于网络,小部分文段摘自网络。一篇关于我的小小理想,希望10年后的自己看到这篇文章,能感到自豪! 职业生涯规划书 引言 初秋的九月,怀揣着梦想,充满着希冀,来到了****…

如何在 Windows 下创建 macOS 引导介质 (USB 启动盘)

请访问原文链接:https://sysin.org/blog/macos-createinstallmedia,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 完整版请参看:如何创建可引导的 macOS 安装介质 补充章节: 在 Windows 下…

在 Windows 中制作 Ubuntu 系统的USB启动盘

转自:爱博客大伯 【笔记】在 Windows 中制作 Ubuntu 系统的USB启动盘 本文只针对 destop 版本。Ubuntu官网中有详细的教程,本文只是做个笔记,以备以后翻看。 有了 Ubuntu 系统的USB启动盘,就可以通过USB启动安装 Ubuntu 系统了。…

如何制作启动U盘安装系统?

用户问题:新手自己用U盘怎么装系统 很多用户对电脑莫名有种小心翼翼的感觉,总担心整崩溃。其实电脑就跟手机差不多,常见的操作不会影响电脑正常运行,而重要的操作几乎都有操作提示或说明,对于用户使用来说它其实没有那…

(一)制作U盘启动盘

1.下载并安装UltraISO软件(https://cn.ultraiso.net/) 2.下载Windows server 2008 r2镜像(https://msdn.itellyou.cn/) 3.U盘格式化成FAT文件系统,打开UltraISO软件 (1)用UltraISO软件打开Windows server 2008 r2镜像 (2)点击菜单 "启动"-写入硬盘映像…

Rufus 制作 USB 启动盘简单教程

制作 Windows 10 启动盘 U盘 / USB 安装盘图文教程 http://rufus.akeo.ie/downloads/rufus-2.2p.exe 1、将U盘连接到电脑,以管理员身份运行 Rufus,确认软件的“设备”一项中选中的是U盘的盘符 (图1处) 2、点击图2处的「光驱图标按钮」来选择你下载好的 …

如何制作Win7 usb启动盘

原文出处:http://www.yixiugege.com/post/308.html 如何制作Win7 usb启动盘?(网友提问) 答:制作Win7 usb启动盘,其实很简单,很多第三方软件都能做到,但最简单、最直接的就是微软自家推出的自动转…

如何快速制作启动u盘

u盘不仅可以作为可移动硬盘,还可以制作成u盘启动盘用于重装系统等。不过在重装系统之前,需要先将u盘制作成u盘启动盘。那么如何快速制作启动u盘呢?我们可以借助U盘启动盘制作工具完成,下面小编就教下大家U盘启动盘制作工具使用方法…

如何在Windows系统上制作U盘启动盘?

使用U盘重装Windows电脑系统,对于熟悉电脑的人来说十分常见,但是不少电脑小白并不会制作U盘启动盘。U盘启动盘是包含操作系统的外部硬盘驱动器,可用于启动计算机或笔记本电脑。下面我们就来了解一下如何制作U盘启动盘。 注意: U …

U盘装系统中bios怎么设置USB启动(图文教程)

整个U盘启动里最关键的一步就是设置U盘启动了,本教程内只是以特定型号的电脑为例进行演示,鉴于各种电脑不同BIOS设置U盘启动各有差异,所以如果下面的演示不能适用于你的电脑,建议去百度或者谷歌搜索一下你的电脑或者与你的电脑类似…

制作U盘启动盘 优启通

新手用户重装系统,当然需要一款简单易用的PE工具,U盘启动盘是装机必备的工具。 通过U盘启动盘,可以解决电脑使用的绝大部分故障。 比如:通过U盘启动盘, 1、可以重装系统。 2、可以破解windows开机密码。 3、可以修…

Rufus v4.0.2035 开源USB引导启动盘制作工具单文件版

Rufus 是一个可以帮助格式化和创建可引导USB闪存盘的工具,比如 USB 随身碟,记忆棒等等。在如下场景中会非常有用:你需要把一些可引导的ISO格式的镜像(Windows,Linux,UEFI等)创建成USB安装盘的时…