网站首页 > 博客文章 正文
一、OSI网络协议七层模型
OSI是Open System Interconnect的缩写,意为开放式系统互联。其各个层次的划分遵循下列原则:
(1)同一层中的各网络节点都有相同的层次结构,具有同样的功能。
(2)同一节点内相邻层之间通过接口进行通信。
(3)七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。
(4)不同节点的同等层按照协议实现对等层之间的通信。
理论上有七层:物联网传话表用
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
实际应用中四层:联网专用
数据链路层、网络层、传输层、应用层
网卡是Mac地址,数据链路层,交换机用于局域网内部数据快速传输也是数据链路层
路由器是网络层。网络层判断ip地址,传输层判断端口号。http使用tcp协议
DNS 就是把域名解析成IP地址的一种技术。
主机A和B映射关系:
二、什么是端口
端口 :用来标记唯一进程的方式 交换机:组成局域网,
IP地址用来区分我和同桌的电脑,端口用来区分同桌和同桌之间进程。
查看端口的状态: netstat -an
查看哪个应用占用端口: cmd 输入命令: netstat -ano|findstr 8000
kill -9 pid 杀掉进程
taskkill /94524/
跨域问题,需要解决。同协议同域名同端口
知名端口是 0到1023是知名端口,动态端口是1024到65535
80端口分配给HTTP服务,21端口分配给FTP 服务
三、什么是IP
ip 地址 IP用来区分我和同桌的电脑,端口用来区分同桌之间进程。
用来在逻辑上标记唯一一台电脑,同一个局域网里面,不允许ip地址相同
每一个ip地址包括两部分:网络地址和主机地址
A类、B类、C类(192.168.1.106)、D类、E类
192.168.1.106
占4个字节,最大是 255,最后一个字节变,前面3个字节不变
四、tcp/ip协议
tcp 传输控制协议
udp 用户数据报协议
udp和tcp区别:
tcp是基于连接的,传输数据稳定可靠,传输文件,发送邮件,浏览网页(相当于打电话)
udp是非连接的, 优点是速度快,但是可能产生丢包,域名查询,语音通话,视屏直播等。udp还有一个非常重要的应用场景就是隧道网络,比如:vpn,VXLAN.(相当于写信)udp广播 ,数据每人发一份,只管发送 不管接收。
tcp分为三个步骤,三次握手,传输确认,四次挥手。三次握手是建立连接的过程。因为这个过程中互相发送了三包数据,所以称之为三次握手。
Mac地址和 IP 地址区别:
Mac 地址在两个设备之间通信时是变化的,而ip地址在整个通信过程中都不会发生任何变化
ip地址是在逻辑上标记一台电脑,标记逻辑上地址, ip 地址确定大局方向,一个大致方向
Mac 标记实际转发数据时的设备地址, Mac地址手拉手之间传递数据用的。
netmask:和ip地址一起来确定网络号
默认网关:发送的ip不在同一个网段内,那么会把这个数据转发给默认网关
网络层的路由器是IP寻址,,,数据链路层的交换机是MAC寻址
五、socket 简介,插口或套接字
socket 创建出来的套接字,默认是主动套接字。默认是跟别人说话的,
listen() 将主动套接字变为被动套接字
多个电脑之间通信用socket,进程之间通信的方式,能实现不同主机间进程间通信。返回值是一个套接字,s1和s2有接受发送数据功能
s1 = socket.socket(socket.AF_INET,socket.SOCK_STREAM) TCP
s2 = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) UDP
客户端代码
import socket
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
phone.connect(('192.168.47.160',8000))
phone.send('hello world'.encode('utf-8'))
data = phone.recv(1024)
print('收到服务端发来的消息',data)
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
phone.bind(('192.168.47.160',8000))
phone.listen(5)
conn,addr = phone.accept()
msg = conn.recv(1024)
print('客户端发来的消息',msg)
conn.send(msg.upper())
conn.close()
phone.close()
- 上一篇: 工业路由器网关的网络协议之NAT技术
- 下一篇: 从联机游戏学习NAT类型
猜你喜欢
- 2025-01-18 防火墙NAT配置,配置NAT静态转换,配置NAT动态转换PAT及No-PAT模式
- 2025-01-18 四种网路类型外网穿透力与优化方法
- 2025-01-18 运维自动化之实用python代码汇总
- 2025-01-18 通过Python实现内网穿透的几种方式?
- 2025-01-18 小科普 | 联机游戏卡顿?改善你的NAT类型吧
- 2025-01-18 如何用Python实现神经网络(附完整代码)
- 2025-01-18 公司内网用户如何通过NAT地址访问外网,一文读懂!
- 2025-01-18 从联机游戏学习NAT类型
- 2025-01-18 工业路由器网关的网络协议之NAT技术
- 2025-01-18 NAT类型
你 发表评论:
欢迎- 最近发表
-
- 别再用雪花算法生成ID了!试试这个吧
- Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建)
- 业务系统性能问题诊断和优化分析(业务系统性能问题诊断和优化分析报告)
- 数据库中如何批量添加指定数据(数据库批量新增数据)
- Instagram架构的分片和ID的设计(ins的分类)
- VBA数据库解决方案第十四讲:如何在数据库中动态删除和建立数据表
- MySQL数据库安装教程(mysql数据库安装方法)
- SOLIDWORKS Electrical卸载与升级安装操作步骤
- 数据库分库分表解决方案汇总(数据库分库分表思路)
- 根据工作表数据生成数据库(根据excel生成数据库表结构)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)