5.9网络协议

由网卡发送数据通过网线进行发送,当网卡接收到信号以后将数据传给内核数据区,然后由操作系统交给相应的进程。

将数据进行发送的时候需要借助于网线实现,这个时候会出现当传输的数据比较远的时候就借助于中继器将信号进行再生扩大,当多个机器需要交流的时候就使用集线器多个点连接(星型),但是数据不能隔离会出现a给b的数据会发给每一个点数据就非常多,所以使用网桥隔离一片区域,使得数据不要发送超出这样的一片区域。后来使用更高级的硬件设备:交换机:网桥+集线器

当然当进行长距离的数据传输的时候,还需要借助于路由器进行转发。

网络协议为什么要分层是因为需要规定每个步骤的条件和要求,可以更好的提高效率!每一层只需要关注自己的事情,应用层只需要知道自己是借助于qq发送一个文本信息,对面的应用层也是知道自己的qq发来了一个文本信息。

用户不能进到服务器中,用户端发送请求,服务器端在相应的ip端口监听接收请求分析请求并且返回相应的信息。

采用多层的方式,例如说是在网络层添加相应的ip头部,路由器每到一个节点就会拆来查看相应的IP地址内容,因为ip地址是按照地区进行划分的,会大致向目的地发。

传输层以及上面的层是端到端的层次就是在逻辑上从这个用户到另外一个用户,只需要在一端进行解析,然后再另外一端进行解析,中间部分都是不会解析的当作01数据。

unix系统底层默认实现tcp/ip实现,cc++程序员主要是关注应用层的协议。

应用层:http,dns,ftp,smtp 传输层:tcp,udp 网络层:ip 

应用层可以自定义新协议,只要保证交流的两端进行数据的交流按照自己认同的方式进行交流就可以。c++程序员有一定的概率会自己写自己的协议。

网络就是获取资源:

资源在哪个地方:URL 资源怎么在网络中进行传输: HTTP  论文的格式:HTML

URL也就是一般说的网址链接。域名-----》ip,如果没有找到响应的的域名对应的ip就找dns的服务器解析。

域名只是和ip对应,但是不包含端口号。

在发送信息的时候将论文以HTML形式发送,通过http协议包装进行发送。其中包括http协议:

请求行,请求头(消息头),空行,正文。

用户发送http请求信息(其实主要是看头部的信息),服务器发送http响应信息

https常用的端口是443端口,http端口是80端口。有时候可能是指明的那就找指明的端口服务。

请求行包含的内容:请求方式, 请求资源, 请求协议

请求方式:主要有GET和POST两种方式,大多数请求是GET,GET常用于获取数据,POST是用于服务器提交数据

还有其他的请求方法,有很多细分的标准方式,但大多都是用get和post涵盖。

服务器不管是谁发的,只看发来的数据是否是符合协议标准。

get请求一般把参数放在资源路径之后,post请求放在请求正文中

语法也可以get参数放在正文,post请求放在路径之后,不符合常理。

所以说登录密码等等都是通过post请求

确定是get还是post请求就是看如果是获取数据就是get,如果是提交数据就是post。一般都是既会提交数据又要获取数据,这个时候就是哪个是主要的点。

一般时候都是获取信息,但是当收藏文章或者放购物车的时候是提交信息。

请求资源中的路径只是一个标记,并不是在目标服务器真的有这样的一个目录。

请求协议

http1.1和http1.0 :http1.1链接以后不要断开,等多次的信息发送完以后才断开,如果是在短时间内频繁发送多次请求性能更好。

在进行发送数据以前需要先进行三次握手和四次挥手使得在链接以前进行握手确认,进行四次挥手确认断开链接。

请求头的信息是客户端给服务器看的。

accept: 大类型/小类型:vedio/mp4 text/txt   权重 q=...

采用直接输入网址发起http请求没有reffer,通过在一个网站中进行跳转到另外一个网页这个时候会携带reffer带的就是原来网页的路径。

http协议是非常灵活的但是tcp,udp不灵活。http中可以有不合实际的信息。

访问一个网站首先是先返回一个html代码,解析代码发现有图片然后就去发起请求然后拿图片以及图片的相关的信息,如果刷新的时候将图片的相关信息发送过去,如果图片的信息没有改变,就不会再返回图片,而是要求用户端从内存中加载。

cookie是一个机器的标识,IP会变化但是cookie发送给服务器的时候,服务器就知道是你。

 post用于指向要访问的目标服务器上的虚拟主机,虽然不同的域名指向相同的ip但还有post可以指明在同一个服务器上的不同虚拟主机。

响应信息和请求信息格式差不多。

响应行最重要的状态码:例如http协议404响应报文的状态段。状态码分为五个段,几百段就是几开头,每个段都有自己的功能。200段表示正常访问,300表示我没有资源但我知道资源在哪,400段状态码表示没有这个资源但服务器是在的。500段(505,507)服务器内部出现错误,一定代码有问题。

因为http协议可以自己写所以可能会出现很多自己不认识的字段。

抓包

抓包可以确定是发送端接收还是接收端抓包有问题,参数对不对,信息对不对等等。

通过分析http一个请求,获取关键信息就叫做抓包

首先检查URL  协议http, 资源路径,参数

请求方式:GET or POST

看看有没有响应,响应状态码参数,响应是不是相关的数据,头部信息一般意义不大

这些如果没有问题很可能是自己的代码有问题。

https:相比于http更安全,因为https是加密的,所以说抓包也是看不懂的。

证书,对称加密,非对称加密。

买证书可以去相应的服务器验证是否安全;对称加密:知道怎么加密就知道怎么解密;

非对称加密:公钥-》加密-》密文,密文-》私钥-》明文。这个过程是不可逆的,所以说即使获得公钥也不能解密。

往往对称加密的效率比较高,所以说一般也是用对称加密来实现。

服务器在现实中几乎没有发起请求的,需要服务器提供数据就是用GET请求

传输层:主要讨论tcp和udp这两个协议

相较于应用层会学习以及自己也可以定义属于自己的协议,但是传输层学习的协议是比较少的,主要是tcp和udp。传输层的头部(固定部分20字节)每个位都有准确的定义,不能随意。

在发送信息的时候是在传输层+端口,在IP层+ip

结合上面的信息,http是在传输层是借助于tcp协议的,这就是在传输的时候需要先进行三次握手,完成以后需要进行四次挥手(前两次挥手表示客户与服务器断开连接,后两次表示服务器与客户端断开链接)。

tcp连接是一个可靠的面向连接的全双工的连接

可靠:三四握手挥手,每次发送信息都有确认信息(可能是累计确认),超时重传快速重传。

确认:可能不会每一个都确认是累计确认,接收窗口中没有按照顺序到达对于中断未到的一段进行反复请求当请求到三次的时候就进行重发。

udp是一个不可靠的连接,是直接放到网络,效率比较高,现在的正确传输率在90%以上。

传输层在理论上是端到端的,但是在现实中并不是端到端的,就是因为局域网的存在会进行nat的转换,所以会对于端口号ip都进行修改。

当确认位ACK为0的时候ack确认号是没有意义的。

注意数据比较大的时候,会进行切片发送,并且不是会对于每一片都确认,会进行累计确认的方式,放到缓冲区中。在窗口中收集到了足够的数据的时候,就向上传送。

往往在进行tcp传输的时候,不常用到超时重传但是会用到累计快速重传的方式。因为当一直没有收到其中中断的一段的时候,就不断请求该段,当请求超过三次的时候,就重发。

在客户端和服务器端使用2msl,就是会等待可能出现收不到的情况。谁先挥手谁先等timewait时间

udp并不会在传输层进行切片,因为不能进行拼接,所以最终的切片任务交给网络层。

按照理论来说,传输层是端到端的,所以说网络层的交换机路由器等等设备在理论上不能查看tcp和udp头部信息。而ip头部是可以被这些设备打开查看的。

ip分为ipv4和ipv6。ipv4分为abcd类地址,有4个字节32位bit

ipv4不够用------》使用ipv6.  局域网使得ipv4可以一直存在,足够使用。

局域网向公网ip进行转换,通过net协议。局域网ip地址:10.x.x.x, 172.16.x.x - 172.31.x.x, 192.168.x.x - 192.168.x.x

买的云服务器往往给的是公网ip

当tcp向下传的时候往往向下传的是已经分好片的,所以不需要在网络层进行分片,但是udp是没有进行分号片,所以需要在网络层进行分片,通过标识位来确定属于同一块。通过片偏移来确认在该块的哪一个位置。

DHCP服务器是用来分配局域网内的ip,即使不变化硬件,也会变化网络,因为DHCP会有时间限制。ICMP追踪在网络上的传输情况。

ping ip 看自己能否和这个设备连接上了吗?很重要,如果不能ping通那么根本就没有连接成功。

以太网IEEE802.3定义以太网的标准。解决直连的设备之间的通信。在数据链路层。以太网帧添加的目的地址和源地址都是mac地址,后面还有crc检验字段。在每个硬件设备之间进行传输的过程中不断修改。其实前面还有前导码。

ARP协议当知道一个ip地址但是不知道MAC地址,以太网帧的目的地址写全1,通过ip网关知道是发给自己的回复附上自己的MAC地址。

会有一个对外的ip(大概率是一个局域网ip),操作系统需要发送数据的时候就是借助于网卡

一开始是输入域名,通过域名解析DNS获取相应的ip地址。然后进行三次握手和四次挥手,注意因为是在局域网中,所以会进行ip和端口号的修改通过NAT协议。

重点理解

应用层---》传输层---》网络层

传输层:确定自己和对方的端口号

网络层:确定自己和对方的IP地址

重要的内容:

应用层主要需要学习的内容是http协议

请求信息包含四个部分:请求行, 请求头,空行, 正文

请求行:请求方式,请求资源, 请求协议

请求方式GET用于获取数据,POST用于提交数据

抓包, 关注重点 , URL域名(ip+端口)看是否发对地方,协议(是否使用正确的协议)

查看状态码,如果500段那么是服务器代码出现问题。查看返回值。

http和https的区别:

https更加安全,会有证书保证安全。还有加密,包含对称加密和非对称加密

传输层主要需要学习的内容是tcp和udp协议

tcp和udp区别:

tcp可靠,udp不可靠

tcp连接机制:三次握手和四次挥手,还有超时重传,累计确认,快速重传的方式。

tcp和udp头部都含端口号,考察头部信息不多。

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

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

相关文章

FedDML:Federated Mutual Learning

这篇把DML运用到FL上 论文地址:arvix code: 作者git 贡献 我们针对三种异质性(DOM)提出了一种新颖的联邦学习范式,称为联邦相互学习(FML)。 首先,FML 处理数据和目标通过使每个客户能够训练个性化模型来实现异质性。 从OH的意义上来说,DH对服务器有害,但对客户端有…

STL—string类(1)

一、string类 1、为什么要学习string? C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP(面向对象…

爱校对新功能上线:领导人讲话和职务排序校对

我们很高兴地宣布,爱校对网站正式推出两项新功能:领导人讲话校对和领导人职务排序校对。这些新功能旨在帮助用户更准确地引用和整理领导人讲话内容,以及正确排列领导人的职务顺序。 领导人讲话校对 在撰写报告或文章时,引用领导…

气膜建筑使用寿命由什么决定—轻空间

气膜建筑作为一种新型建筑结构,以其独特的优点在全球范围内逐渐普及。其使用寿命是投资者和用户关注的关键问题。气膜建筑的使用寿命主要由以下几个方面决定: 1. 膜材 膜材是气膜建筑的核心组成部分,其质量直接影响到建筑的使用寿命。以下是影…

智能网红主播直播手机:助您轻松卖货、卖团购卷、拓客利器!

在当下快速发展的电商行业中,直播销售已经成为无可忽视的一大趋势。智能网红主播直播手机的出现,让人们无需拥有专业设备和经验,便可轻松参与直播销售,享受销售乐趣。本文将介绍智能网红主播直播手机的操作简单、易上手以及其在卖…

JAVA二手车交易二手车市场系统源码支持微信小程序+微信公众号+H5+APP

二手车交易二手车市场系统:重塑购车新体验 随着汽车消费市场的日益成熟,二手车交易逐渐成为消费者购车的新选择。为了提供更加便捷、透明、安全的二手车交易环境,我们推出了“二手车交易二手车市场系统”,旨在为买卖双方搭建一个…

新书速览|Django 5 Web应用开发实战

构建未来,用Django 5打造全新Web应用 本书内容 《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南。《Django 5 Web应用开发实战》内容以Python 3.x和Django 5版本为基础…

JavaScript循环结构

JS循环结构 1 while结构2 for循环3 foreach循环 1 while结构 几乎和JAVA一致 代码 /* 打印99 乘法表 */var i 1;while(i < 9){var j 1;while(j < i){document.write(j"*"i""i*j" ");j;}document.write("<hr/>");i…

深度学习设计模式之简单工厂模式

文章目录 前言一、简单工厂设计模式的作用&#xff1f;二、详细分析1.核心组成2.实现步骤3.示例代码4.优缺点优点缺点 5.使用场景 总结 前言 本文主要学习简单工厂设计模式&#xff0c;这个设计模式主要是将创建复杂对象的操作单独放到一个类中&#xff0c;这个类就是工厂类&a…

物联网D3——按键控制LED、光敏传感蜂鸣器

按键控制LED 按键抖动&#xff0c;电平发生变化&#xff0c;可用延时函数抵消按键抖动对系统的影响 传感器电路图 按键电路图 c语言对应类型 “_t”后缀表示使用typedef重命名的数据类型 枚举类型 #include<iostream> using namespace std; //定义枚举类型 typedef enu…

基于springboot实现的在线动漫信息平台

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

vue2 结合iview和百度地图API实现电子围栏

vue2 结合iview和百度地图API实现电子围栏 实现在地图上绘制电子围栏并自定义电子围栏样式&#xff0c;还可以标记中心点 1.百度地图API相关JS引用 <script src"//api.map.baidu.com/api?typewebgl&v1.0&ak百度地图官网申请的ak"></script>//…

【JVM】调优工具

这里简单介绍一下各种调优用到的工具 一&#xff0c;环境准备 首先我们需要准备好Java环境&#xff0c;和win上的jdk环境&#xff08;图形化界面如jconsole只有jdk中有&#xff09;。 有这样一个类Prolem&#xff0c;每个线程都会带来100个垃圾对象&#xff0c;线程new完100…

翻译《The Old New Thing》- What does the CS_OWNDC class style do?

What does the CS_OWNDC class style do? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20060601-06/?p31003 Raymond Chen 2006年06月01日 简要 本文讨论了CS_OWNDC窗口类样式的影响&#xff0c;它让窗口管理器为窗口创建一个永久的设…

品牌银饰售卖|基于SSM+vue的品牌银饰售卖平台的设计与实现(源码+数据库+文档)

品牌银饰售卖平台 目录 基于SSM&#xff0b;vue的品牌银饰售卖平台的设计与实现 一、前言 二、系统设计 三、系统功能设计 1前台功能模块 2后台功能模块 5.2.1管理员功能模块 5.2.2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题…

Redission分布式锁 - 抢课系统

使用Redission分布式锁与Kafka消息队列&#xff0c;实现学生抢课系统&#xff08;高并发秒杀场景&#xff09;。 目录 一、思路1.为频繁访问的信息设置缓存&#xff08;1&#xff09;登陆&#xff08;2&#xff09;课程任务信息&#xff08;3&#xff09;用户抢课记录 2.消息队…

知识图谱开发日志

应用于应用环境的配置.测试.发布 假如你写了一个web,并且测试调试都没有问题 并且,你想发给你的朋友,导师,或者部署到远程云服务器上 那么,你需要配置相同的软件,比如数据库,web服务器,必要的插件,库,etc…但这并不一定能保证软件的正常运行,因为别人可能使用完全不同的操作系统…

在VMware安装Androidx86_64系统要点

上篇使用VirtualBox安装过Androidx86_64系统&#xff0c;尝试了没有蓝牙共享的好方法。本篇记录下使用Vmware虚机安装改系统&#xff0c;并使用蓝牙共享功能。 1.准备材料 本篇安装环境是安装Window10_64位系统。需要下载好Vmware安装包&#xff0c;VMWare版本&#xff1a;VMw…

python:rename函数用法

在Pandas库中&#xff0c;rename函数是一个非常实用的方法&#xff0c;用于重命名DataFrame或Series的轴标签&#xff08;如列名或索引&#xff09;。以下是rename函数的基本用法、参数以及一些示例。 1.rename基本语法 DataFrame.rename(mapperNone, indexNone, columnsNone…

【以规划为导向的自动驾驶】Planning-oriented Autonomous Driving

ABSTRACT 研究背景&#xff1a; 现代自动驾驶系统是顺序化地排列多个任务模块, 近期的主流方法&#xff1a; ①为单个任务部署独立模型 ②设计具有分离式头部的多任务(multi-task)范式。 但是&#xff0c;这些方法会累积误差或任务间协同不足而不利于自动驾驶。 作者认为重…