网络编程

网络编程

软件开发架构

c/s架构(client/server) c:客户端

s:服务端

b/s架构(browers/server) b:浏览器

c:服务器

b/s架构本质就是c/s架构

手机端在未来b/s架构会变得更火

服务端就是24小时,不间断提供服务

客户端随时随地都能找服务端,体验服务

 

OSI协议

七层协议:

应用层

表示层

会话层

传输层

网络层

数据链路层

物理连接层

可以将7层简化成5层

应用层

传输层

网络层

数据链路层

物理连接层

 

我们学习七层协议要从最底层学起

1.物理连接层

基于电信号010101二进制数据传输

2.数据链路层

1.规定电信号分组方式

2.规定任何一台接入互联网的计算机都必须有一块网卡

每一块网卡都是独一无二的,上面刻有12位16进制数

前六位是厂家编号,后六位是流水线编号

这12位数就被称之为mac地址

以上两点被称之为 '以太网协议'

交换机

基于以太网协议通信

不能跨局域网通信

 

互联网是n多个局域网连接而成的

 

3.网络层

IP协议

规定了每台连入互联网的计算机都必须有一个IP地址,IP地址也是独一无二的

IP地址特点:点分十进制

IP地址最小:0.0.0.0

IP地址最大:255.255.255.255

IP地址目前的两大版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本)

IP地址是动态分布的

 

 

4.传输层

TCPUDP都是基于端口工作的协议

端口(port)

计算机之间的传输就是计算机上的应用程序之间的传输

端口:用来唯一标识一台计算机上的某个应用程序

端口号的范围:0~65535

注意:0~1024这些都是操作系统默认使用的端口号

建议:使用8000之后的端口

MySQL:默认端口:3306

Redis默认端口:6379

django默认端口:8000

flask默认端口:5000

 

端口号是动态分配的

第一次起qq分配到的是8989

将qq关闭再次启动端口号可能就变了

总结:

ip地址:用来唯一标识接入互联网的一台计算机

port端口:用来唯一标识计算机上的某个应用程序

ip+port:用来唯一标识接入互联网计算机上的某个应用程序

 

 

5.应用层

HTTP协议

FTP协议

 

 

TCP协议

流式协议,可靠协议

基于TCP协议通信 必须先建立双向通道

 

TCP协议传输数据之所以可靠的原因就在于有双向通道???

不对,TCP协议之所以可靠主要因为双方传递数据,都会等对方回应接收,才会将内存中的数据删除

三次握手,四次挥手

原文地址:https://www.cnblogs.com/asdaa/p/11311536.html