网络是怎么连接的

目录

一.以浏览器要访问一个网址为例,理解这一次网络连接的全貌。

二.协议栈和网卡

 0.TCP/IP的分层结构

1.套接字

2.连接

连接的目的

连接的过程

3.发送数据

4.接收数据

5.断开连接

6.发送数据时包的情况

 包是怎么转发的?

包收发的过程

7.网卡

 网卡组装完成包

8.向集线器发送网络包

9.接收返回包

网卡处理

TCP&IP处理

三.集线器,交换机,路由器

1.集线器 

集线器的工作过程

2.交换机

交换机的工作过程

交换机的特点

3.路由器

四.通过接入网进入互联网内部

1.接入网

ADSL接入网

通信过程

光纤接入网

PPP拨号上网

区分

通过隧道将网络包发送给运营商

2.网络运营商内部

POP

NOC

运营商之间的连接


 

 

一.以浏览器要访问一个网址为例,理解这一次网络连接的全貌。

大体过程

  • 浏览器要访问一个资源,如www.baidu.com
  • 找到提供这个资源的服务器
  • 服务器提供资源

1.浏览器解析URL,生成请求消息。

1)解析URL,明确访问目标

2)生成请求消息

注意:

1).URI是/目录名/文件名

2.浏览器将请求消息委托给操作系统

浏览器能解析网址并生成HTTP消息,但不具备将消息发送到网络上的能力。

3.操作系统根据域名查询IP地址

浏览器-Socket库-协议栈。

1)首先了解IP地址,在TCP/IP协议中,网络由子网和路由器连接而成,所以IP地址包含了网络号(具体在哪个子网)和主机号。用子网掩码来区分网络号和主机号的界限。

2)操作系统调用计算机上的DNS客户端(解析器-包含在Socket库中的一个程序),将域名告诉它。通过代码gethostbyname来调用这个程序。

3)解析器再将信息发送给操作系统内部的协议栈(协议驱动或TCP/IP驱动).。

4)协议栈执行操作通过网卡将消息发送给最近的DNS服务器(这个最近的DNS服务器的IP地址在电脑中设置好了)。

5)最近的DNS服务器去找根DNS服务器,根DNS服务器管理com等域名,再找管理baidu域名的服务器,再找管理www域名的服务器,在管理www域名的服务器中找到具体具体资源的服务器,获得该服务器的IP地址。

6)为什么域名和IP公用?

域名方便人们识别记忆,IP为了方便传输。

4.操作系统协议栈根据IP地址向服务器发送HTTP请求

需要调用操作系统的协议栈的Socket库中的程序组件来完成功能

客户端委托操作系统都是靠调用Socket库中的程序组件再交给协议栈来完成

浏览器-Socket库-协议栈。

1)服务器,客户端分别创建一个套接字(相当于传输管道的入口和出口)。

调用Socket库中的socket组件

2)客户端的套接字延申出管道连接服务器的套接字。

d五分钟理解TCP/IP协议中端口号的涵义:什么是端口号?为什么要有端口号?_哔哩哔哩_bilibili

3)收发数据

调用socket的write组件发送

调用socket的read组件接收

4)断开管道删除套接字

调用socket的close组件关闭

描述符

创建完后,协议栈返回描述符,来识别不同的套接字,因为你可能同时在登录多个网站就需要建立多个通道。

客户端在创建套接字时,协议栈会为这个套接字分配一个端口号,接下来执行连接操作时,会将端口号告诉服务器。

5.服务器解析请求消息,返回响应消息

生成响应消息,返回给客户端,客户端浏览器接收后将数据显示到屏幕上。

二.协议栈和网卡

 0.TCP/IP的分层结构

上层对下层委派,下层接收执行

Socket库中有解析器用来对DNS服务器进行查询还包括其他组件。

浏览器、邮件等一般的应用程序都是使用TCP收发数据的,而像DNS查询等收发较短的控制数据的时候则使用UDP。TCP协议负责加给数据添加TCP协议的控制信息。

IP:下面一半是用IP协议控制网络包收发操作的部分。在互联网上传送数据时,数据会被切分成一个一个的网络包,而将网络包发送给通信对象的操作就是由IP来负责的。IP还包括IMCP和ARP协议,ICMP用于告知网络包传送过程中产生的错误以及各种控制消息,ARP用于根据IP地址查询相应的以太网MAC地址。IP协议负责给数据添加IP协议的控制信息。

网卡驱动:负责控制网卡硬件。

网卡:完成实际收发操作。对网线中的信号执行发送和接收。

1.套接字

套接字的实体协议栈中存放通信控制信息的内存空间,记录通信对象的IP地址、端口号、通信操作的进行状态等。

套接字的作用是在发送数据时,需要看一看套接字中的通信对象IP地址和端口号,以便向指定的IP地址和端口发送数据,套接字中必须要记录是否已经收到响应,以及发送数据后经过了多长时间,才能根据这些信息按照需要执行重发操作。

描述符:描述符相当于用来区分协议栈中的多个套接字的号码牌,来指明这一块内存地址。

2.连接

连接的目的

1.需要把服务器的IP地址和端口号等信息告知协议栈。

2.客户端向服务器传达开始通信的请求。客户端会发出我想和你开始通信,我的IP地址是xxx.xxx. xxx.xxx,端口号是yyyy。

3.开辟一块用来临时存放要收发的数据的内存空间。

  • 8
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值