网络编程基础

软件开发架构

软件开发结构: 程序员在编写软件时候应该遵循的架构设计
规定了程序的请求逻辑,功能划分模块等等 1.C/S架构
client:客户端
Server:服务端 '''
客户端:就是我们平时使用到的软件,都是互联网公司提供给我们的客户端,为我们提供服务的,
客户端相当于需要体验服务的客人
客户端可以有很多人同时使用 同时体验服务
'''
比如淘宝客户端,我们打开淘宝就可以享受淘宝的服务。
'''
服务端:
相当于对外提供服务的店面,一个服务端可以同时服务多个客户端
作为服务端必备的多个条件
1.24小时不间断提供服务
2.固定的地址
3.能够服务多个客人(高并发)
'''
单机游戏就是把 服务端和客户端同时储存在了电脑上,所以才可以支持不需要网络就可以进行服务 2.B/S架构 B:browser 浏览器
S:server 服务器
#将 浏览器 充当 各个程序的 客户端,用户无需下载, C/S架构
优点:客户端支持高度定制,功能更多
缺点:用户需要下载才可以使用
B/S架构
优点:无需下载,打开浏览器即可体验
缺点:无法做到高度定制,功能相对简单 '''
目前行业趋势更加倾向于 B/S架构 更加轻量化
因为可以统一接口,类似用户使用微信 或者 支付宝 就可以达到同时使用很多功能
'''

网络编程简介

1.什么是网络编程
基于网络编写代码 能够实现数据的远程交互
2.学习网络编程的目的
能够开发c/s架构的软件
3.网络编程的起源
"""
最早起源于美国军事领域
想实现计算机之间数据的交互
最早的时候只能用硬盘拷贝
之后发明了网络编程
"""
4.网络编程必备条件
数据的远程交互
1.早期的电话
电话线
2.早期的大屁股电脑
网线
3.笔记本电脑、移动电话
网卡
ps:实现数据的远程交互必备的基础条件是物理连接介质

OSI七层协议简介

OSI七层协议:
规定了所有计算机在远程数据交互的时候必须经过相同的处理流程,在制造过程中必须拥有相同的功能硬件。 七层协议具体为:
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
方便记忆:应 表 会 传 网 数 物 也可以归属为5层:
应用层 传输层 网络层 数据链路层 物理连接层 也可以统称为4层:
应用层 传输层 网络层 网络接口层 # 接收网络消息 = 数据由下往上传递 数据链路层:操作系统在网卡接收数据,系统解析接收到的数据包(处理数据帧);
网络层:系统处理IP头;
传输层:系统处理TCP头,根据得到的端口号,系统将数据包交给应用程序处理;
应用层:应用程序处理数据; # 发送网络消息 = 数据由上往下传递 应用层:浏览器将请求数据封装为一个HTTP请求;
传输层:TCP协议将数据包再次封装为TCP数据包;
网络层:IP协议再次封装;
数据链路层:以太网技术,携带MAC(系统将数据包发送到本机网卡),封装为数据帧;

OSI协议之物理连接层

主要用户确保计算机之间的物理连接介质 用于接收传递数据(数据类型:bytes类型,二进制)

OSI协议之数据链路层

1.规定了电信号的分组方式
2.以太网协议
规定了计算机在出厂的时候必须有一块网卡,网卡上有一串独一无二的数字
相当于计算机的身份证
该数字为:12位数的16进制数据
前六位为 产商编号 后六位是生产流水线号
该数字也称为;以太网地址/MAC地址

网络相关专业名词

计算机之间想要实现数据交互,必须要'连接'到一起

1.交换机
能够将所有介入交换机的计算机彼此互相连接
2.广播
首次查找处于同一个交互机的其他计算机,需要朝交换机里面吼一嗓子
3.单播
首次被查找的计算机回应了查找他的计算机,并附带了自己的mac地址
4.广播风暴
接入同一台交换机的多台计算机同时发送广播
5.局域网
可以简单理解为多个交互机或多个计算机在同一个交换机组成的网络,在局域网内可以直接使用mac地址通讯
6.广域网
可以简单的理解为范围更大的局域网,类似同省 同区等
7.互联网
由所有局域网,广域网连接到一起组成的网络,世界上有的网络都是连接在一起的
8.路由器
不同的局域网计算机之间是无法直接实现数据交互的,需要由路由器连接

OSI之网络层

IP协议:规定了所有介入互联网的计算机都必须有一个ip地址,类似身份证号

ip地址:是动态分配的,不同场所不同环境下ip地址是不同的
mac地址:是物理地址,可以查看 永远无法修改 ip地址特征:
IPV4;点分十进制
最小 0.0.0.0
最大 255.255.255.255
IPV6:
有不同的数字 字母 符号组成 可以生成无限个不同的地址 IP地址:可以跨局域网传输的

OSI协议之传输层

PORT协议(端口协议)
用来标示一台计算机上面的某一个应用程序
范围:0 - 65535
特征:动态分配(洗浴中心的号码牌,用的时候发一个,不用了再回收过来)
建议:
0-1024 系统默认需要使用
1024-8080 常见软件的端口号
建议我们自己写的程序使用8100-50000直接的端口号即可 URL:统一资源定位符(网址)
网址的本质就是由 IP 和 PORE端口组成的
ip+PORT端口:能够定位出全世界独一无二的一台计算机上面的某个应用程序 域名解析:将网址解析成为 ip + PORT端口
举例: 192.168.10.12:80 我们之所以不直接使用ip加端口访问程序,是因为太难记了,所以才发明了域名 IP:PORT 实际使用冒号连接
114.55.205.139:80

传输层之TCP协议/UDP协议

TCP与UDP协议都是用来规定通信方式的
不遵守协议也可以进行通讯,只不过遵守了协议会让程序更加合规合法合理

TCP协议

1.TCP协议也被称为可靠协议,因为数据不容易丢失 因为有反馈机制,当我们给对方发消息后会保留一个副本,知道对方回应消息收到了才会删除
三次握手键连接 2. 三次握手建立连接
客户端发送 SYN(SEQ=x)报文给服务端,进入SYN_SEND状态
服务端收到SYN报文 回应一个SYN(SEQ=y) ACK(ACK = X+1)报文,进入SYN_RECV状态
客户端收到服务端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态
三次握手完毕,客户端和服务端成功建立双向通道 可以开始传输数据。
# 简单理解就是,客户端发送请求与服务端连接, 服务端同意连接并发送请求和客户端连接, 客户端再同意连接 3次握手 3. 四次挥手断连接
客户端请求断开单向通道,SYN = x
服务端确认收到客户端完整消息后 确定断开
服务端确认没有需要发给客户端的消息后 发送断开单项通道请求
客户端 确认断开
四次挥手完毕,客户端和服务端的双向通道全部断开
# 简单理解就是:客户端发出我想断开连接,服务端收到同意断开,服务端接着确认没什么好说的了 也发送 断开连接, 然后客户端再同意 彻底分手 完成四次挥手

UDP协议

		也被称为简单协议,不可靠协议
只是把应用程序需要发送的数据直接发送出去,但是并不能保证信息一定可以到目的地,也无法确认对方是否有收到   当应用程序希望通过UDP与一个应用程序通信时,传输数据之前源端和终端不建立连接。   使用UDP的原因就是因为很简单 快捷 粗暴 只要指定对方的地址就可以发消息了 """
TCP我们可以看成是打电话:双方你侬我侬
UDP我们可以看成是发短信:只要发了就行 不管对方看不看
"""

应用层

应用层相当于是程序员自己写的应用程序 里面的协议非常的多,常见的有:HTTP /
HTTPS / FTP 等等
根据不同的框架也会用到不同的协议

网络编程 - OSI七层协议详解的更多相关文章

  1. python网络编程-OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  2. Day09: socket网络编程-OSI七层协议,tcp/udp套接字,tcp粘包问题,socketserver

    今日内容:socket网络编程    1.OSI七层协议    2.基于tcp协议的套接字通信    3.模拟ssh远程执行命令    4.tcp的粘包问题及解决方案    5.基于udp协议的套接字 ...

  3. 8.6 day27 网络编程 osi七层协议 Time模块补充知识 TCP协议

    Time模块补充知识 date和datetime区别是什么? date 就是年月日 datetime就是年月时时分秒 以下代码为什么会报错? import json from datetime imp ...

  4. OSI七层协议详解

    一.简介 开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式 ...

  5. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  6. 软件开发架构与网络之OSI七层协议(五层)

    本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...

  7. 网络之OSI七层协议模型、TCP/IP四层模型

    13.OSI七层模型各层分别有哪些协议及它们的功能 在互联网中实际使用的是TCP/IP参考模型.实际存在的协议主要包括在:物理层.数据链路层.网络层.传输层和应用层.各协议也分别对应这5个层次而已. ...

  8. 网络编程-osi七层

    一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...

  9. OSI七层模型详解 TCP/IP协议

      总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...

  10. 网络--OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

随机推荐

  1. 清理rook-ceph

    官方步骤文档:https://rook.io/docs/rook/v1.8/ceph-teardown.html 请注意需要清理的以下资源: rook-ceph namespace: The Rook ...

  2. Elasticsearch启动https访问

    Elasticsearch上操作 前提:已设置密码访问 ./bin/elasticsearch-certutil ca # 生成elastic-stack-ca.p12文件 ./bin/elastic ...

  3. 5G 与数字化转型的关系是怎样的?

    5G提供的是通信网络服务,数字化转型需要网络服务,但并不是必须使用5G网络,也就是说5G在数字化转型中并不是必虚的,但可以作为备选项,不过在某些行业比如农业.林业.牧业.港口.建筑等布设有线网络.无线 ...

  4. PHP全栈开发(八):CSS Ⅳ 文本格式及字体

    文本系列属性主要是设置文本格式的,例如.... 颜色 body {color:red;} h1 {color:#00ff00;} p.ex {color:rgb(0,0,255); 可以设置文本的居中 ...

  5. 常用cmd及bat脚本命令

    1.内部命令和外部命令 cmd 命令 :内部命令和外部命令 内部命令 系统自带命令 dir copy 外部命令 调用应用程序,可自由拓展 mstsc.exe(mstsc)远程连接 ping (ping ...

  6. 分支结构之二:switch-case

    1.格式 switch(表达式){case 常量1: 执行语句1; //break; case 常量2: 执行语句2; //break; ... default: 执行语句n; //break; } ...

  7. python关于Django搭建简单博客项目(教程)

    由于csdn各种django blog博文都有或多或少的bug,所以我决定自己写一篇,先附上教程,详解在另一篇博文里,为了便于大家复制粘贴,本文代码尽量不使用图片. 源代码及解析文章请在我的githu ...

  8. vue-axios更改操作

    <template> <div class="nav"> <label for="">新部门</label>&l ...

  9. JS逆向实战1——某省阳光采购服务平台

    分析 其实这个网站基本没有用到过什么逆向,就是简单的图片base64加密 然后把连接变成2进制存成文件 然后用ocr去识别即可 !! 注意 在获取图片连接 和对列表页发起请求时一定要用一个请求,也就是 ...

  10. Oracle数据泵导入dmp文件,报UDI-12154、ORA-12154错误解决办法

    1. 数据泵导入dmp文件,报UDI-12154.ORA-12154 1.1 导入命令 impdp cwy_init/init@orcl directory=DATA_PUMP_DIR dumpfil ...