网络编程
软件开发架构:c/s架构 c:客户端 s:服务器
b/s架构 b:浏览器 s:服务器
服务器:24小时运行提供服务
客户端:当用户需要服务的时候,寻找服务
网络编程的发展史:任何先进的技术最早都来源于军事
OSI协议
OSI七层协议
应用层
表示层
会话层
传输层
网络层
数据链路层
物理连接层
OSI五层协议
应用层
传输层
网络层
数据链路层
物理连接层
1、物理连接层
基于电信号传输二进制数据
2、数据链路层
以太网协议:
1.规定的电信号的分组方式
2.规定任何一台接入互联网的计算机都必须有一块网卡,每张网卡上面都有一个世界上独一无二的12位16进制的编号
交换机:基于以太网通信协议,不能跨局域网通信
互联网是由多个局域网彼此之间连接而成的
3、网络层
IP协议
规定了只要是接入互联网的计算机都必须有一个IP地址
ip地址特点:点分十进制,动态分配
ip地址最小:0.0.0.0
ip地址最大:255.255.255.255
ip地址目前有两个版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本)
4.传输层
TCPUDP都是基于端口工作的协议
端口(port)
计算机与计算机之间其实是计算机上的应用程序与应用程序之间的通信
端口:用来唯一标识一台计算机上的某个应用程序
端口号的范围:0~65535
注意:0~1024这些都是操作系统默认使用的端口号
建议:使用8000之后的端口
MySQL默认端口:3306
Redis默认端口:6379
django默认端口:8000
flask默认端口:5000
端口号是动态分配的
第一次起qq分配到的是8989
将qq关闭再次启动端口号可能就变了
5.总结
ip地址:用来唯一标识接入互联网的一台计算机
port端口:用来唯一标识一台计算机上的某个应用程序
ip+port:唯一标识接入互联网一台计算机上的某个应用程序
5.应用层
HTTP协议
FTP协议
TCP协议
流式协议,可靠协议
基于TCP协议通信 必选先建立双向通道
TCP协议传输数据之所以可靠的原因就在于有双向通道???
三次握手四次挥手
三次握手建连接
四次挥手断连接