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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 在浏览器地址栏输入地址按下回车后... -> 正文阅读

[网络协议]在浏览器地址栏输入地址按下回车后...

如何让阅读后进入脑中的知识点更加有体系,如何让抽象的知识变的更加活灵活现,阅读后的梳理可以让我们更好地做到这一点。同时实践能够让我们更加清楚地了解新知识的应用场景。这篇便是我学习网络的初章。

了解在地址输入栏中简单的按下一个回车背后复杂的故事

在了解本文主题之前我们不妨花上小几分钟简单阅读一下一下的内容,或许会有新的收获

1.浏览器的各种访问目标统称为URI

2.尽管浏览器能够解析网址并生成HTTP消息,但它本身并不具备将消息发送到网络中的功能,因此这一功能需要委托操作系统来实现

3.仅凭32位 的IP我们无法区分哪部分是网络号,哪部分是主机号。ip=网络号(xx小区)+主机号(xx室)

4 ! 主机号部分bit全为0,表示一个子网192.168.1.0, 192.168.0.0

? ! 主机号部分bit全为1,表示一个子网内广播地址192.168.1.255, 192.168.0.255

5.子网掩码为1的部分表示网络号,子网掩码为0的部分表示主机号。

6.子网掩码表示网络号与主机号之间的边界

7.在域名中,越靠右的位置表示其层级越高,比如www.lab.glasscom.com这个域名如果按照公司里的组织结构来说,大概就是“com事业集团glasscom部lab科的www”这样。

8.服务器一方先创建套接字,然后等待客户端向该套接字连接管道

9.如果说描述符是用来在一台计算机内部识别套接字的机制,那么端口号就是用来让通信的另一方能够识别出套接字的机制

10.客户端在创建套接字时,协议栈会为这个套接字随便分配一个端口号。接下来,当协议栈执行连接操作时,会将这个随便分配的端口号通知给服务器。

正题开始

? 首先我们都知道url并不是网络通信中真正有效的信息,在网络中我们通过ip来确认目的地服务器,当我们获取到ip后,会将ip等用于网络数据传输的信息一并交给操作系统的协议栈。

? 这里有一点基础的概念:我们建立在操作系统之上的应用程序并不能之间进行与硬件的沟通,一切应用对于硬件的操作都要通过操作系统调用,不能想当然的认为是应用操作了硬件,显然网络的通信是需要硬件支撑的。

? ok,那么我们怎么才能知道目的地的ip呢,答案就是解析你输入的url,就好比电话号码我们不可能记住身边每一个人的电话号码,因为它是并不存在具体的含义。而我们常用的电话簿就用简单易记的名字或者绰号对应了电话号码,比如我们可以轻松的点击"二狗"的头像并联系他。

ip -> 电话号码 , url -> 你对好友的备注, ? -> 电话簿

问:?处应填入什么? 答案:DNS服务器

当然,这样形容并不是完全正确,因为在一方面电话簿是一个本地的记录,而DNS不存在于本地。但是就理解来说已经非常易懂了。

好的那么我们开始讲讲浏览器是如何通过远程访问将ip这一信息拿到手的吧。这里我们值得一说的是我们会忽略一些细节,比如去浏览器解析缓存中存在的url->ip映射,dns 建立udp通信等并不主要的内容

图解ip获取的过程

我们主要将目光放在去向DNS服务器的这条路线上。

  1. 首先应用程序会使用系统提供的Socket库创建套接字。在这里我们可以这样思考:为什么我们发出请求到服务器服务器就能给我们响应呢,是因为服务早早就让自己那端创建了一个套接字,当然套接字只是一个抽象的概念,只并不存在实体。然后服务端那边的套接字就一直等着另一个套接字与之连接。就像是管道一样能够传输其中的数据流。

2.那客户端应该如何去识别他要接入的套接字呢。这些都需要使用到库中的解析器。他会根据输入的url提取出有用的信息比如: 端口号。平时我们的浏览器进行网页访问的时候都是直接输入一串url,而不用去设置端口号这是因为浏览器访问http请求默认使用80端口。

3.那服务器的套接字我们能够分辨出来了,而客户端可能会有多个应用同时对不同的服务端发出请求,怎么样才能让不同的应用找到自己创建的套接字呢?换句话说就是规避数据传输混乱的问题呢,这里就要使用到创建套接字时生成的描述符了。我们只需要知道这相当于是一个套接字的标识即可。

如果说描述符是用来在一台计算机内部识别套接字的机制,那么端口号就是用来让通信的另一方能够识别出套接字的机制

此篇仅为阅读《网络是怎样连接的》一书第一章知识的简单梳理。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 11:12:15  更:2021-09-10 11:12:21 
 
开发: 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年11日历 -2024/11/25 23:13:38-

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