网络基础

网络基础

端口

作用:

端口是为了将同一个电脑上的不同程序进行隔离

  • IP:是在网络上寻找电脑
  • Port:是在电脑上寻找不同的程序

示例

范围:

1 - 65535

不能用的:
1 - 1024

一般情况:

​ 8000

​ 8001

​ ...

OSI七层模型:(Open System Interconnection)

如:生产流水线,一步一步,最终生产一个产品

互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层

TCP/IP四层:

​ 物理层 网络层 传输层 应用层

TCP/IP五层:

​ 物理层 数据链路层 网络层 传输层 应用层

OSI七层模型:

​ 从低到高:物理层 数据链路层 网络层 传输层 会话层 表示层 应用层

img

每层常见物理设备

img

每层运行常见的协议

img

应用层:

使用的软件 (为计算机用户提供应用接口,也为用户直接提供各种网络服务)

我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。

打开网站或软件

例如:

  • 百度
  • 谷歌

表示层:

各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。
如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一

看到数据,生产数据:...

例如:

  • 视频
  • 图片

会话层:

​ 会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。

保持会话(保持你的会话或链接状态)

例如:

  • cookie
  • 无痕浏览

应用偷偷携带一些数据:令牌:kl128931nijbidabd

传输层:

​ 传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路.

我们通常说,TCP UDP就是在这一层。端口号既是这里的“端”

例如:

  • 添加报头:[TCP] [daksbdjabsdknqiyhw89712938719dahkjn]

网络层:

本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。
就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础

IP地址

例如:

  • [IP] [TCP] [daksbdjabsdknqiyhw89712938719dahkjn]

数据链路层:

将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。

Mac地址

例如

  • [Mac地址]【[IP] [TCP] [daksbdjabsdknqiyhw89712938719dahkjn]】

物理层:

实际最终信号的传输是通过物理层实现的。通过物理介质传输比特流。规定了电平、速度和电缆针脚。

常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。

将数据转换成电信号,也就是频率(0和1)

socket模块:

就是帮我们封装实现了 物理层 数据链路层 网络层 传输层,所以我们只需要在意应用层的事情了(也就是我们的代码)

三次握手和四次挥手:

img

socket客户端向服务端发起请求:(三次握手)

第一次握手:客户端向服务端发起请求,等待服务器确认
第二次握手:服务器收到请求,同时也发送一个请求到客户端,等待客户端确认
第三次握手:客户端收到请求后,向服务器发送确认包,发送完毕后,客户端和服务端进入连接状态,完成三次握手

client server

我能打你吗

​ 来呀来呀

好的我这就来

------------------------------(三次握手)

打架中....

client.send('发送数据')

收发数据 收发数据

客户端和服务端断开请求:(四次挥手)

第一次挥手:首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到这个FIN)执行被动关闭。
第二次挥手:当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号
第三次挥手:同时TCP服务器还向应用程序(即丢弃服务器)传送一个文件结束符。接着这个服务器程序就关闭它的连接,导致它的TCP端发送一个FIN
第四次挥手:客户必须发回一个确认,并将确认序号设置为收到序号加1。

client.close() 或 conn.close()

client server

我要断开连接

​ 断开就断开,等我处理一些事情

​ ....
​ 我处理完了,断开吧

拜拜

补充:(断开连接时,反映到python代码上)

  1. 抛异常
  2. 发送空内容

总结:

网络基础:要了解网络相关知识

大学差距:

  1. 计算机组成原理部分
  2. 网络
  3. 数据结构
  4. 算法
posted @ 2019-09-12 00:55  Hyyyy  阅读(594)  评论(0编辑  收藏  举报