计算机网络基础

1.简介

IP地址:IP协议的设计目的可以理解为,为了隐藏不同物理网络的细节,以便各互连网络中的所有主机呈现一个统一的网络架构。可使用单个地址格式来标识互联网上的所有主机。

如一台电脑的IP地址是  00000001  00000010  00000011  00000100

点十法(将二进制变化为十进制)1.2.3.4

使用DNS服务,将IP地址绑定一个域名,转换为文字 www.xx.com 来表示上面的IP地址。

“不同的房屋使用门牌号来区分,房屋里的房间使用房间号来区分;

不同的电脑使用IP地址来区分,电脑里不同的程序使用端口号来区分。”

 

不同的程序有很多种交换数据的方法,其中一种是通过套接字来通信。在套接字接口中,以IP地址和通信端口组成套接字地址。

通信时需要IP地址和端口号。

例子:假设两个电脑有两个程序在通信。一个电脑的IP地址是1.2.3.4,端口号是80;另一个电脑的IP地址是128.11.3.31,端口号是2000。两个程序通信是这样的:

1.2.3.4:80<-->128.11.3.31:2000

 

2.TCP/IP协议模型

 

整个网络通信模型就是上图,一共四层,上层依赖下层。从下往上看:

第一层链路层,它负责两个设备之间数据传输。

第二层网络层,它设法将数据从源端经过若干个中间节点传送到目的端,提供最基本的端到端数据传送服务(这一层用到了IP协议,IP地址相当于网络通信中的门牌号,IP协议会经过几个中间点找到所需要通信的IP地址)。

第三层传输层,控制端对端数据传输时的速度与质量(TCP协议是可靠通信协议,当发现对面没有接收到已发送的数据,会再发送一遍)。

第四层应用层,提供特定的应用服务。(HTTP协议就是用来提供网页访问的服务)。

几点注意

1.TCP/IP虽然经常一起提,但是他俩不在同一层,IP在第二层,TCP在第三层。(从下往上)

2.上层协议依赖于下层协议。

3.各层负责不同的事。

4.IP地址属于IP协议里的内容。

 

3.端口号

传输层(TCP协议和UDP协议)是使用16位端口号(0-65535)来识别程序。

对应服务器端程序来说,公认端口,范围0-1023,这些端口号一般固定分配给一些服务。比如:21端口分配给FTP(文件传输协议),25端口分配给SMTP(简单邮件传输协议),80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)。

而对应客户端应用程序来说,使用由系统分配的随机端口。动态端口,范围1024-65535,只要运行的程序向系统提出访问网络的申请,那麽系统就可以从这些端口号中,分配一个供该程序使用。再关闭程序进程后,就会释放所占用的端口号。

 

4.CS模型

CS模型(客户-服务器模型)

网络应用程序可以分为两种:客户端和服务器端。服务器端反复做的事:

1.等待客户端的请求

2.处理客户端的请求

3.发送响应给所有请求的客户端

4.重新回到步骤一

总之:必须有一台先运行服务器端程序(监听),然后等待客户端程序连接上来,才能进行数据通信。

写网络通信程序需要IP地址和端口号!

 

原文地址:https://github.com/alwxkxk/soft-and-hard

### HTTPS加密的工作原理 HTTPS通过SSL/TLS协议实现了数据的加密传输,其核心在于结合了非对称加密和对称加密的优点来完成通信的安全性[^1]。在建立连接的过程中,客户端服务器之间会经历一系列复杂的握手操作以协商加密算法、交换密钥以及验证身份。 #### 一、TLS/SSL握手阶段 当浏览器访问一个基于HTTPS的网页时,它首先向目标站点发起TCP三次握手请求建立基础链接之后进入真正的TLS/SSL握手环节: 1. **Client Hello**: 客户端发送一条消息给服务端表明支持哪些版本号(如TLSv1.2)、密码套件列表以及其他参数。 2. **Server Hello and Certificate Exchange**: 接收到客户端的消息后,服务器回应自己的首选配置,并附带一份由可信CA签发的数字证书用于证明身份合法性的同时也包含了公钥信息供后续使用[^2]. 3. **Key Exchange (Ephemeral Diffie-Hellman or RSA)**: 此步涉及到了如何生成共享秘密的过程。如果是DHE/ECDHE模式,则双方各自计算临时私钥并通过公开部分传递给对方;若是传统的RSA方式,则客户机会随机产生一段预主秘钥(pre-master secret),再利用之前获取的服务端公钥对其进行封装后再传回后者那里解锁得到原始内容[^3]. 4. **Finished Messages Verification**: 经过以上几步处理完毕后,两端分别独立推导出会话所需的最终实际使用的对称密钥材料(即master-secret), 并互相告知已完成准备状态以便正式开启受保护的数据交互活动. #### 二、应用层数据传输阶段 一旦完成了初始设置动作,在接下来的应用过程中所有的HTTP报文都将被事先商定好的方法予以编码转换成不可读形式然后再经网络通道送达目的地解析还原出来显示给接收方查看[^1]. ```python import ssl context = ssl.create_default_context() with socket.create_connection(("www.example.com", 443)) as sock: with context.wrap_socket(sock, server_hostname="www.example.com") as ssock: print(ssock.version()) ``` 此代码片段展示了Python中创建一个简单的SSL上下文环境并远程主机建立安全连接的例子[^2].
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值