IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络 -> 正文阅读

[网络协议]计算机网络

OSI协议

横向看(为哪两个平行的东西提供服务)
纵向看(为上层提供什么服务)

专有名词

报文应用层
报文段(TCP),数据报(UDP)传输层
分组,包,数据报网络层
数据链路层
数据单元物理层
  • 应用层
    。为应用程序提供通讯和交互的协议
    。DNS, HTTP, SMTP,DHCP,FTP
  • 传输层
    。为两台主机之间的进程提供通用的数据传输服务
    。为上层:把应用层的报文封装成TCP报文段或UDP数据报进行传送
    。TCP, UDP
  • 网络层
    。为两台主机间的通信提供服务
    。为上层:把报文段或数据报封装成IP数据报进行传送
    。ICMP, ARP
  • 数据链路层
    。也是为两台主机之间的数据传输提供服务。两台主机之间的传输,总是在一段一段的链路上传送的,这就需要链路层协议。
    。为上层:把IP数据报封装成帧,在链路上进行传递。
    。CSMA, PPP
  • 物理层
    。在传输媒体上进行比特流传输
    。为上层:把帧拆分成比特流在传输媒介上进行传输。尽可能为数据链路层屏蔽传输媒体和通信手段的差异。
    。时分复用,频分复用

应用层

DNS协议

域名解析协议,提供了域名和IP之间的相互转换

可以使用UDP或TCP,但一般使用UDP
1.UDP更快,一个请求,一个应答就可以了
而TCP三次握手连接。
2.但UDP协议传输的内容不能超过512字节,一般客户端向DNS服务器查域名,返回的内容都不超过512字节,UDP就够了。

但区域传送要用TCP

区域传送:主DNS服务器上的数据有变化了,要向下传送变化的那部分数据时,因为1.数据很大,2.要保证可靠传输,所以不能用UDP。

DHCP

自动为用户配置IP地址,子网掩码,网关等信息。用户不需要再手动配置IP地址。

Web页面的请求过程

特别详细深入的过程
在这里插入图片描述
1.DHCP获取主机自己的IP,DNS服务器IP,默认网关IP
主机生成一个DHCP请求报文放入UDP报文中,然后再封装成IP数据报,再封装成帧,将该帧广播到与交换机连接的所有设备上,DHCP服务器收到后发送报文给主机包括(主机IP,DNSIP, 默认网关IP),主机收到后配置自己的相关信息。
2. 主机生成一个DNS查询报文
将字符串www.google.com放入DNS报文段,封装成UDP数据报,放入具有DNS服务器为目的IP地址的IP数据报,封入帧,将帧发送到默认网关路由器,但刚刚只拿到了IP,不知道MAC地址。
3.主机生成一个具有默认网关IP的ARP查询报文
将该ARP报文放在帧中广播,网关路由器收到后,准备一个ARP回答。主机从回答报文中抽取网关路由器的MAC地址。
4.拿到网关地址后,把生成的DNS查询报文转发给网关
网关路由器根据DNS查询的IP数据报,把它转发给对应的DNS服务器。DNS服务器在它的数据库中找www.google.com对应的IP,并反向转发给主机。
5.主机从DNS报文中抽出服务器(google)的IP
主机首先与服务器进行三次握手连接

主机服务器
向服务器发送TCP SYN报文段
服务器收到,回一个SYN ACK报文段
主机收到,再发送一个ACK确认连接报文段到HTTP服务器三次连接建立完毕
HTTP GET报文写入套接字,交给HTTP服务器
服务器从套接字读取HTTP GET 报文,生成一个响应报文,将对应的WEB资源放入HTTP响应体,并将报文写进TCP套接字
浏览器收到HTTP响应,抽取WEB页面的内容进行渲染

HTTP状态码

1xx浏览器可以忽略或继续请求
2xx成功
3xx重定向
4xx客户端请求错误(404资源没找到)
5xx服务器错误

HTTP长连接和短连接

  1. 长连接: 当浏览器访问一个包含多张图片的网站时,如果是短连接就会建立大量TCP连接,这样很消耗资源,长连接允许只建立一个TCP连接,就能进行多次HTTP通信。
    1.1之前默认短连接,1.1之后默认长连接
  2. 流水线: 默认情况下,HTTP请求按顺序发送,只有当当前请求收到响应,才会发送下一个请求。
    而流水线就是在一个HTTP长连接下连续发出请求,不用等待响应返回,减少延迟。

Cookie&&Session

cookie是保存在客户端浏览器里的一种信息载体。可以实现免登陆功能。

how?:服务器发送的响应报文段首部有一个set-cookie字段。客户端拿到这个响应后,把这个字段保存在浏览器,当客户端再次发送请求相同资源时,会把cookie一起携带在请求中,发送到服务端。

Session: 服务器给每个浏览器创建一个session对象,保存在服务器里,存储在浏览器的cookie不安全,一些js脚本可能拿到cookie。

how?

  1. 用户登陆时,把用户名密码表单放入http请求报文中。
  2. 服务器收到后,为其创建一个session,并创建一个sessionID映射这个session。
  3. 把这个sessionID作为cookie发给客户端,客户端会保存在自己的cookie。
  4. 之后客户端对同一个服务器进行请求时,会带上这个cookie,服务器收到后提取sessionID,找到对应session,读取用户信息。

浏览器如果禁用了cookie,可以用URL重写技术,把sessionID作为URL的参数进行传递

session,cookie的作用域(哪些路径支持)可以设置;生命周期(过期时间)可以设置。

HTTP1.1和1.0主要区别

1.01.1
长连接短连接
支持断点续传,指定字节位置传送
新增一些错误状态响应码
增加了host信息(此时一台物理机可以存在多个虚拟主机)

请求转发和重定向


参考

在这里插入图片描述
https://blog.csdn.net/u011386173/article/details/123901024

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-11 16:44:24  更:2022-05-11 16:44:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 15:36:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码