一、网络通信和tcp协议

一、网络协议

1、计算机网络

        简单类说就是利用通信线路实现计算机和通信设备进行信息交互的系统;

2、网络分类

        局域网(LAN):一般为几十米到及时公里

        域域网(MAN):介于LAN与WAN之间

       广域网(WAN):一般为几十到几千公里;

3、计算机网络体系结构

七层协议(OSI)模型:开放系统互联参考模型,国际化组织为开放式互联信息系统提供的一种功能性框架,目的是为了提供一个共同的基础的和标准的框架;

OSI采用了分层结构化技术,共分为七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;

TCP/IP模型:OSI模型比较复杂且学术化,实际使用的是TCP/IPO模型;共分为五层:物理层、数据链路层、网络层、传输层、应用层、(两个模型对应的关系如下图)

无论什么模型,每一层抽象层建立在低一层的服务上,并为高一层提供服务;对于PC机来说,物理层可以看成网卡,数据链路层可以看成网卡驱动程序,网络层和传输层由操作负责处理,应用层则是常用的一些应用程序(如我们自己编写的网络应用程序)

TCP/IP协议族:是internet最基本的协议,国际互联网的基础;由网络层的IP协议和传输层的TCP协议组成;协议采用五层结构,然而多数情况下它是利用IP进行通信时所必须用到的协议群的统称;也就是说它其实是个协议家族,由很多协议组成,并且实在不同的层,是互联网的基础通信架构;

IP、TCP、UDP:在上图中ip是TCP/IP中非常重要的协议,用来确定网络中的唯一一台计算机设备;

而TCP和UDP都是传输协议层的协议,传输层主要为两台主机上的应用程序提供端到端的通信;

利用TCP通信的两台主机首先要经历一个建立连接、等到连接建立以后才开始传输数据;

利用UDP通信有点类似于日常生活中的物流,UDP直接把数据发出去,不管对方是否在接收,也不管对方是否能接收,也不需要确认,属于不可靠协议;

TCP/IP网络传输中的数据:每个分层中都会对发送的数据加一个首部,首部包含该层必要信息(发送地址以及协议相关信息);所需要发送的内容为数据;
网络传输中的数据包分为两部分组成,一部分是协议所要的首部,一部分是上层传来的数据;在数据包的首部明确了应该如何读取数据;

举例:

地址和端口

MAC地址是为物理地址,由生产时写在硬件内部的,与网络无关;

IP地址:全程叫做互联网协议地址,是互联网为每一个网络和每一台主机配置的一个唯一逻辑地址;IP地址用来识别TCP/IP协议网络中互连的主机和路由器;不受硬件限制;Ip地址分为IPv4、 IPv6。IPv4是由32位二进制数组成,通常被分为四个“8位二进制数”,可以理解为四个字节,格式为(A.B.C.D),这四个英文字母表示为0-255的十进制整数;如192.168.1.1

端口:在传输层也有这种类似于地址的概念,端口号用来识别同一台计算机中进行通信的不同程序;TCP、UDP协议报文的开通,会分别有16位二进制来存储源端口号和目标端口,所以端口的个数是2的16次方(65536)个;0表示所有端口,因此只有65535个;

综述:操作系统是通过源IP地址、目标IP地址、协议号、源端口号、目标端口号五个元素唯一性识别一个网络上的通信;

4、TCP

TCP特性:TCP是面向连接的通信协议,通过三次握手建立连接才能开始读写数据,通信王城后要拆除连接;TCP提供的是一种可靠数据流服务,数据有可能被拆分后发送,TCP支持超时重传和应答机制;

TCP三次握手:所谓三次握手是指建立一个TCP连接时需要客户端和服务器端总共发送三个包确认建立连接;在socket编程中,这一过程由客户端执行connet来触发;

为什么需要三次握手?

TCP是可靠的传输控制协议,三次握手是保证数据可靠传输又能提高传输效率的最小次数;

为了实现可靠数据传输,TCP协议通信双方必须维护一个序列号,以表示发送出去的数据包中,哪些数据是已经被对方接收的;两次握手,服务端无法知道客户端已经收到了自己的序列号;

TCP四次挥手:指断开一个TCP连接,需要发送四个包确认断开;

1、其中一个应用程序调用关闭,该TCP发送一个FIN分节,进入等待;

2、接收到这个FIN的对端被动关闭,发送确认;主动关闭端接收到确认后,进入FIN-WAIT-2终止等待状态;

3、被动关闭程序调用关闭,发送一个FIN,表示没有数据需要发送了。

4、接收到后主动关闭端发送一个ack报文,进入TIME-WAIT状态,此时未释放,经过2*MSL的时间后,主动撤销TCB后,才进入Closed。

为什么需要四次挥手?

TCP是全双工的连接,必须两段同时关闭连接,连接才算真正关闭;

如果一方已经准备关闭写,但是它还可以读另一方发送的数据;发送给FIN结束报文给对方,对方收到后,回复ACK报文;当这方也已经写完了准备关闭,发送FIN报文,对方回复ACK。两端都关闭,TCP连接正常关闭;

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

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

相关文章

Gettler‘s Screep World 笔记 Ⅰ

夏促时候刚刚入坑,写个笔记叭~ 环境配置 参考 HoPGoldy 大佬的简书,先配置下开发环境 萌新去看大佬的详细教程,我这里比较简单,有前端基础的可以直接抄 VSCode 跳过 node 我配的是v18.18.2 换源 npm config set registry h…

【查看WIFI密码】:在window操作系统上查看已连接过的WIFI密码(两种方式)

前言 通常情况下,我们想要将已经连接过的wifi分享给好友,但不知道怎么查看,废话不多说,直接上干货 方式一:通过cmd命令 Step01:打开cmd WIN r 弹出运行框 输入:cmd,点击确定&…

打靶记录——靶机easy_cloudantivirus

靶机下载地址 链接:https://pan.baidu.com/s/1OfrqdNKbabAkMvmoM70gbQ?pwdgz0m 提取码:gz0m Vulnhub 的靶机都有一个特点,通常导入到 VMware Workstation 时都会获取不到 IP 地址,虽然可以进紧急模式中修改,但是太麻…

Android SurfaceView 组件介绍,挖洞原理详解

文章目录 组件介绍基本概念关键特性使用场景 SurfaceHolder介绍主要功能使用示例 SurfaceView 挖洞原理工作机制 使用SurfaceView展示图片示例创建一个自定义的 SurfaceView类在 Activity 中使用 ImageSurfaceView注意事项效果展示 组件介绍 在 Android 开发中,Sur…

【STM32 HAL库】全双工DMA双buffer的I2S使用

1、配置I2S 我们的有效数据是32位的,使用飞利浦格式。 2、配置DMA **这里需要注意:**i2s的DR寄存器是16位的,如果需要发送32位的数据,是需要写两次DR寄存器的,所以DMA的外设数据宽度设置16位,而不是32位。…

关于vue实现导出excel表,以及导出的excel后的图片超过单元格的问题

实现导出带图标片的excel的方法, 首先: import table2excel from js-table2excel // 导出表格 按钮点击后触发事件 const onBatchExport () > {const column [//数据表单{title: "ID", //表头名称titlekey: "id", //数据ty…

新手小白的pytorch学习第五弹-----pytorch的工作流

我们之前学习了 pytorch 中的基本数据 tensor 今天我们要开始学习 pytorch 的简单工作流程了 数据 -> 构建或选择一个预训练的模型 -> 使得模型适应数据并能够进行预测 -> 评估模型 -> 通过实验提升性能 -> 保存并重新加载你训练的模型 机器学习和深度学习的关…

解决mysql,Navicat for MySQL,IntelliJ IDEA之间中文乱码

使用软件版本 jdk-8u171-windows-x64 ideaIU-2021.1.3 mysql-essential-5.0.87-win32 navicat8_mysql_cs 这个问题我调试了好久,网上的方法基本上都试过了,终于是解决了。 三个地方结果都不一样。 方法一 首先大家可以尝试下面这种方法&#xff1a…

Github 2024-07-15 开源项目周报 Top15

根据Github Trendings的统计,本周(2024-07-15统计)共有15个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目5非开发语言项目4JavaScript项目3TypeScript项目2Go项目1Solidity项目1Java项目1Rust项目1免费编程学习平台:freeCodeCamp.org 创建…

数据库系统概论:数据库完整性

引言 数据库是现代信息系统的心脏,数据的准确性和一致性对于业务流程至关重要。数据库完整性是确保数据质量的基石,它涵盖了数据的正确性、相容性和一致性,是数据安全与业务连续性的保障。 数据库完整性是指数据的精确性、可靠性和逻辑一致…

选择项目进度系统的10大必知软件

国内外主流的10款项目进度软件对比:PingCode、Worktile、蓝凌EIS智慧工作平台、Teambition、Tapd、Tower、Monday.com、ClickUp、Asana、Jira。 在选择项目进度系统时,你是否感到困惑或不确定如何挑选最适合自己团队的工具?市场上的众多选项和…

Uncaught (in promise) TypeError: Object(...) is not a function at eval

踩坑: Uncaught (in promise) TypeError: Object(...) is not a function at eval_at object.eval [as fullvalidate] (eval at <anonymo-CSDN博客 又新添一个错误的出现方式&#xff0c;后台启动没问题&#xff0c;但是我的数据库是无法自行启动的&#xff0c;这就导致在查…

Redis-布隆过滤器(Bloom Filter)详解

文章目录 什么是布隆过滤器 布隆过滤器的优点&#xff1a;布隆过滤器的缺点&#xff1a;其他问题 布隆过滤器适合的场景布隆过滤器原理 数据结构增加元素查询元素删除元素 如何使用布隆过滤器 Google开源的Guava自带布隆过滤器Redis实现布隆过滤器 Redis中配置布隆过滤器Redis…

MYSQL 四、mysql进阶 9(数据库的设计规范)

一、为什么需要数据库设计 二、范 式 2.1 范式简介 在关系型数据库中&#xff0c;关于数据表设计的基本原则、规则就称为范式。 可以理解为&#xff0c;一张数据表的设计结 构需要满足的某种设计标准的 级别 。要想设计一个结构合理的关系型数据库&#xff0c;必须满足一定的…

品牌出海“掘金”的王牌账号:亚马逊VC——WAYLI威利跨境助力商家

在全球化的大潮中&#xff0c;B2B模式已然成为品牌出海“掘金”的王牌账号&#xff0c;特别是在亚马逊VC这一强大平台的加持下。亚马逊VC不仅是企业间贸易的桥梁&#xff0c;更是品牌国际化的加速器。 亚马逊VC&#xff0c;为企业提供了直接进入亚马逊全球供应链的机遇。这不仅…

神经网络中如何优化模型和超参数调优(案例为tensor的预测)

总结&#xff1a; 初级&#xff1a;简单修改一下超参数&#xff0c;效果一般般但是够用&#xff0c;有时候甚至直接不够用 中级&#xff1a;optuna得出最好的超参数之后&#xff0c;再多一些epoch让train和testloss整体下降&#xff0c;然后结果就很不错。 高级&#xff1a;…

盛夏畅饮狂欢,肆拾玖坊肆玖嘿哈精酿白啤陪你嗨啤!

盛夏的炎热,犹如烈火燃烧,让人无法抵挡那股渴望畅饮的冲动。在这个时节,你是否也期待着与亲朋好友欢聚一堂,聚餐畅饮,共度清凉惬意的时光?快来!肆拾玖坊的肆玖嘿哈喊你一起嗨啤了! 提及啤酒,想必大家都不会陌生。这个古老的饮品,自公元前3世纪起便与人类相伴,穿越历史的长河,时…

【ProtoBuf】proto 3 语法 -- 详解

这个部分会对通讯录进行多次升级&#xff0c;使用 2.x 表示升级的版本&#xff0c;最终将会升级如下内容&#xff1a; 不再打印联系人的序列化结果&#xff0c;而是将通讯录序列化后并写入文件中。 从文件中将通讯录解析出来&#xff0c;并进行打印。 新增联系人属性&#xff…

常用指标和损失总结

损失 回归问题 L1损失 L1 损失是最小化模型参数的绝对值之和。 倾向于使模型参数接近零&#xff0c;导致模型变得更加稀疏。这意味着一些特征的权重可能变为零&#xff0c;从而被模型忽略。 对异常值非常敏感。异常值会导致参数权重绝对值增大&#xff0c;从而影响模型的整…

2024年【电工(高级)】考试报名及电工(高级)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 电工&#xff08;高级&#xff09;考试报名参考答案及电工&#xff08;高级&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及电工&#xff08;高级&#xff09;操作证已考过的学员汇总&#xff0c;相对有…