day27_8.6 网络编程7层协议
一。软件开发架构
在所有软件中有两种结构模式
1.c/s架构(client/server)
c代表的是客户端
s代表的是服务端
2.b/s架构(browser/server)
b代表的是浏览器
s代表的是服务端
当然,bs架构的本质也是cs架构。
在现在手机中,软件中多有网站的链接等等,是c/s中b/s的体现。
二。七层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
五层协议
应用层
传输层
网络层
数据链路层
物理连接层
三。各个层的分析
1.物理连接层
在这一层,通常是指电信号的传输,以010101001010这种二进制的数据进行传输的的物理层。
2.数据链路层
这一层的协议表示的是:
1规定了电信号的分组方式
2.规定了任何一台接入互联网的计算机都有一块网卡,每一块网卡上,都刻有世界上独一无二的编号。
是由12位16进制数组成,前6位是厂商编号,后六位是流水线编号。
这十二位数共同组成了mac地址。
这种协议被称为‘以太网协议’
以太网协议通信的特点:
通信广播。就是当在局域网中以以太网进行协议传输,当用户1需要对用户2进行访问时,需要广播其请求,使得在其局域网中的所有人都收到这个请求,但是只有用户2能够响应这个访问,然后与之建立连接。

在局域网中,使用交换机进行集合,各个pc端通过交换机进行连接。交换机是基于以太网协议通信的。但是不能跨局域网进行通信。
互联网:互联网是由多个局域网彼此之间连接而成。
3.网络层
在这一层使用的协议是ip协议。
ip协议规定,只要是接入了互联网的计算机,都必须有一个ip地址。
这类IP地址类似于255.255.255.0,是由点分十进制,
最小的 是0.0.0.0,最大的是255.255.255.255。
其中有ipv4和ipv6两种协议,开发ipv6的原因是v4不够使用。
广域网与路由器。
要使得局域网与局域网之间实现通信,需要使用路由器,将交换机连接至路由器,就可以和其他连入路由器的交换机进行通信。
路由器与交换机之间有网关。
ip地址是动态分配的。每当你重新连入一次网络后,都有可能会改变。

4.传输层
tcp
udp
在这一层中使用这两种协议,这些协议都是基于端口号(port)的协议。
端口号是用来唯一表示一台计算机上的某个应用程序的。
端口范围是0——65535
假设一个pc机上有65536个应用程序启动,当启动地65537个时,会报错,因为没有端口给它使用了。
注意:0~1024这些都是操作系统默认使用的端口号
建议:使用8000之后的端口
MySQL默认端口:3306
Redis默认端口:6379
django默认端口:8000
flask默认端口:5000
tomcat默认端口号:8080
端口号也是动态分配的。
我们通常使用ip+port唯一标识接入网络的软件。
5.应用层
http协议
ftp协议
tcp协议
TCP协议时一个流式协议,是可靠的协议。
是基于TCP协议通信,必须先建立双向通信。
其中包括三次握手 和四次挥手。
三次握手:

在三次握手时,客户端先发送连接请求向服务器,当服务器接受到请求后,返回收到请求的报告,并向其发送连接请求,这两个可以一起发送,最后客户端再返回一个收到服务器请求的反馈信息。这样双向通道就建立完毕了。
四次挥手:

四次挥手是在连接断开时的动作,一开始,客户端需要向服务器发送断开连接请求,服务器收到请求后,向客户端发送收到请求的消息,但不立即发送断开服务器与客户端之间的连接,因为,数据传输工作可能没有结束,需要完成传输工作后,再发送断开连接请求,当客户端收到断开连接请求后,再向服务器发送收到断开请求的消息,这时候双向通道才算完全断开。
总共流程:

,
day27_8.6 网络编程7层协议的更多相关文章
- UNIX网络编程---传输层:TCP、UDP、SCTP(二)
UNIX网络编程----传输层:TCP.UDP.SCTP 一.概述 本章的焦点是传输层:包括TCP.UDP.和SCTP(流控制传输协议).SCTP是一个较新的协议,最初设计用于跨因特网传输电话信令. ...
- C#网络编程之---TCP协议的同步通信(二)
上一篇学习日记C#网络编程之--TCP协议(一)中以服务端接受客户端的请求连接结尾既然服务端已经与客户端建立了连接,那么沟通通道已经打通,载满数据的小火车就可以彼此传送和接收了.现在让我们来看看数据的 ...
- 从websocket协议出发,了解应用层协议,传输层协议,网络的7层协议
其他关联连接 :TCP的三次握手(建立连接)和四次挥手(关闭连接) 1.websocket是全双工,不同于传统半双工通信 传统的Web应用中,浏览器与服务器交互都是半双工通信(但并不完全是半双工通信, ...
- C#网络编程之--TCP协议(一)
TCP 是面向连接的传输协议 面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的 TCP 是全双工的传输协议 全双工,这个理解起来也很简单,A打电话给B,B接听电 ...
- 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程
Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服 ...
- JAVA基础知识之网络编程——-TCP/IP协议,socket通信,服务器客户端通信demo
OSI模型分层 OSI模型是指国际标准化组织(ISO)提出的开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM),它将网络分为七 ...
- iOS UI高级之网络编程(HTTP协议)
HTTP协议的概念 HTTP协议,Hyper Text Transfer Protocol (超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP是一个应用层协议,由请求和响 ...
- 网络编程(UDP协议-聊天程序)
网络编程中的UDP协议中聊天程序,发送端口,和接受端口. 发送端口(Send): <span style="font-size:18px;">package cn.it ...
- UNIX网络编程——基于UDP协议的网络程序
一.下图是典型的UDP客户端/服务器通讯过程 下面依照通信流程,我们来实现一个UDP回射客户/服务器: #include <sys/types.h> #include <sys/so ...
随机推荐
- idea多模块项目打开RunDashBoard(十)
在使用spring cloud微服务时,多个服务可以以多个独立子模块(module)的形式放在一个project里面,当服务过多时,一个个启动往往不是很方便,idea有一个贴心的RunDashBoar ...
- Python ord & chr
ord & chr ord: 返回单个 Unicode 字符编码的整数 chr: 给一个 Unicode 编码,返回一个字符 (0 ~ 1,114,111) (ASCII 与 Unicode ...
- pycharm配置docker
- RSA加密与解密
/// <summary> /// RSA 公钥加密 /// </summary> /// <param name="content">要加密的 ...
- Kubernetes集群的安全机制
集群的安全性需要考虑以下几个目标: 1.保证容器与其所在宿主机的隔离 2.限制容器给基础设施及其他容器带来的消极影响的能力 3.最小权限原则——合理限制所有组件的权限,确保组件只执行它被授权的行为 4 ...
- JVM-基本操作
1.我们为什么要对jvm做优化?在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求: 运行的应用“卡住了”,日志不输出,程序没有反应服务器的CPU负载突 ...
- python免安装版(绿色版)制作
一.实验环境 1.Windows7x64_SP1 二.需求背景 个人编写了一个软件安装器,用于一键安装开发软件及工具,该工具基于python + pywinauto. 但问题来了,新电脑上未安装pyt ...
- Linux和windows下修改tomcat内存
原文地址:https://www.cnblogs.com/wdpnodecodes/p/8036333.html 由于服务器上放的tomcat太多,造成内存溢出. 常见的内存溢出有以下两种: java ...
- Linux SELinux 使用操作
Linux SELinux 使用操作 # 修改 SELinux 启动模式.临时生效 命令:setenforce [0|1] 0:转成 permissive 宽容模式: 1:转成 Enforcing 强 ...
- cuda,cudnn
20191008 服务器上的cuda总是被人搞坏掉,好烦.记录下: 卸载干净cuda sudo rm -rf /usr/local/cuda sudo apt-get remove cuda sudo ...