day27 网络编程一


网络编程


一  软件开发架构

# c/s架构(client/server)
c:客户端
s:服务端
# b/s架构(browser/server)
b:浏览器
s:服务器
ps:bs架构本质也是cs架构
手机端看上去cs架构比较火,实际上bs已经在崛起
微信支付宝都在做一件事:统一接口
手机端之后肯定也是bs比较火


服务端:24小时不间断提供服务
客户端:什么时候想体验服务,就去找心仪的服务端寻求服务

学习网络编程 就可以开发一个cs架构的软件
并发 数据库 前端 django 就可以一个bs架构的软件

1.2 网络编程的发展史

任何现进的技术最早都来源于军事

# 回到过去
1.早期的电话 电话线
2.大屁股电脑 网线
3.笔记本电脑 无线电话 网卡

要想实现远程通信第一个需要具备的条件是:物理连接介质

公共的标准/协议

人要想实现无障碍交流必须说统一的语言 >>> 英文
# 计算机与计算机之间要想实现远程通信除了有物理连接介质之外还需要


二  OSI协议
OSI七层协议

应用层\表示层\会话层
传输层\网络层
数据链路层\物理连接层

#应表会传网数物


OSI五层协议

应用层\传输层\网络层\数据链路层\物理连接层



2.1 物理连接层

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


2.2 数据链路层

# 1.规定的电信号的分组方式
# 2.规定了任何一台接入互联网的计算机都必须有一块网卡
每一块网卡上面都刻有世界上独一无二的编号
12位16进制数
前6位是厂商编号
后6位是流水线编号
我们管这12数叫mac地址
ps:以上两点合称为"以太网协议"

2.2.1 交换机

基于以太网协议通信
不能跨局域网通信

互联网是有N多个局域网彼此之间连接而成的

2.3 网络层

IP协议
规定了只要是接入互联网的计算机都必须有一个IP地址
ip地址特点:点分十进制
ip地址最小:0.0.0.0
ip地址最大:255.255.255.255
ip地址目前有两个版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本)

IP地址是动态分配的



2.4 传输层

IP协议
规定了只要是接入互联网的计算机都必须有一个IP地址
ip地址特点:点分十进制
ip地址最小:0.0.0.0
ip地址最大:255.255.255.255
ip地址目前有两个版本:IPV4 IPV6(由于IPV4已经不够表示目前存在的计算机了 所以推出了IPV6版本)

IP地址是动态分配的

2.4.1 总结

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

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


2.5 应用层

HTTP协议
FTP协议


TCP协议
流式协议,可靠协议
基于TCP协议通信 必选先建立双向通道


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



三次握手四次挥手


三次握手建连接    

四次挥手断连接

星轨
明星出轨







猜你喜欢

转载自www.cnblogs.com/Ryan-Yuan/p/11311189.html