网络编程 总结

1 . 软件开发的架构

  我们所涉及的两个程序之间的通讯大致可以分为两种:

  第一种应用类 , qq, 微信, 网盘, 优酷这一类是属于需要安装的桌面应用.

  第二种web类 : 百度, 知乎 , 博客园, 等使用浏览器访问就可以直接使用的应用.

  这些应用的本质其实就是两个程序之间的通讯, 而这两个分类又对应了两个软件开发的架构.

    1, c/s架构 : client 与 server, 中文意思: 客户端与服务器架构,这种架构是从用户层面(也可以是物理层面来划分.),这里的客户端一般是指客户端应用              程序exe, 程序需要安装后,才能运行在用户的电脑上,对用户的电脑依赖较大.

    2, b/s架构 : browser与server, 中文意思 : 浏览器与服务器架构, 从用户层面划分的.浏览器,其实也是一种客户端, 只是这个客户端不需要大家安装什么程序, 只需在浏览器上通过http请求服务器相关的资源.

2. 通信的事情

 两个py文件进行通信 : 打开一个文件

两个电脑进行通信 : 连一个网线

多个电脑进行通信: 

  ex : 电脑1(源)要找电脑2(目标)

  电脑1首先发送一个请求帧,期中包含(我的ip是192.168.1.1,我的mac地址是xxxxxxxx,我要找ip地址为192.168.1.2的主机),将此请求发送给交换机.

  交换机要广播这条消息给其他所有的主机

  目标主机接收到消息后,对比发现自己就是被找的主机,回复给交换机信息(我的ip地址是192.168.1.2,我的mac地址是yyyyyyyyy,请回复给ip地址为192.168.1.1,mac地址为xxxxxxx的主机)

  交换机单播形式返回给源主机

 

3 mac地址 : 是一个物理地址,全球唯一,  类似于身份证

4  ip地址:    是一个四位点分十进制,它标识了计算机在网络中的位置.类似于 学号

5 交换机的通信方式:

         广播 : 吼一嗓子

         单播 : 一对一

         组播 : 一对多

6 arp协议 :  通过目标ip地址获取目标mac地址的一个协议.

7 端口 : 操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序

  ip地址 + 端口 能唯一找到某台电脑上的某一个服务程序

路由器 : 连接不同网段 , 路由

网关   : 类似于一个局域网的出口和入口

10  网段   : 一个局域网内的ip地址范围

11 子网掩码 : 子网掩码 &  ip地址  得到网段

12  osi 五层模型:

  应用层       :  http,https,ftp

  传输层       :  tcp / udp          四层交换机  四层路由器

  网络层       :  ip协议            路由器  三层交换机

  数据链路层   :  arp协议           以太网交换机  网卡  网桥

  物理层       :  传输电信号        集线器  网线   光纤

13 路由器与交换机的区别:

  交换机的主要功能是组织局域网, 经过交换机内部处理解析信息之后, 将信息以点对点,点对多的形式发给固定端.

  路由器的主要功能 : 进行跨网段进行数据传输, 路由选择最佳路径

  ex: 如果你需要将多台电脑连接到一根网线, 用交换机即可

   如果你只有一个外网ip, 但是你有好多台电脑需要上网, 用路由器即可.

14  socket模块 介绍

  socket是一个模块, 又叫套接字, 是介于用户层与传输层之间的抽象层.

15  tcp协议与udp之间的区别:

    tcp协议 : 面向连接的,可靠地, 面向字节流形式的传输方式,不允许一个服务器与多个客户端通信, 出现黏包.

    udp协议 : 不可靠的, 不面向连接的, 面向数据报的传输方式, 快.允许一个服务器同时和多个客户端通信.

16  tcp协议的三次握手 与 四次挥手

  (tcp协议通信过程中有一个ack, 确认收到消息的一个标识.)

  三次握手 : 一定是客户端先发起请求

      a : 客户端发起请求连接服务器

      b : 客户端返回 : 接收到请求, 并连接客户端

      c : 客户端回复: 可以连接

  四次挥手:  谁先发起断开连接的请求都ok

      a : 客户端发起断开连接的请求 (我没有数据要发送了,如果你要有数据要发, 我可以继续接收.)

      b : 服务器回复 : 我接收到你的请求了

      c : 服务器发送 : 我已经准备好断开连接了.

      d :客户端回复 : 收到你的信息, 可以断开连接了.

17 实现两个数字的交换的三种方式

  1 a,b = b, a

  2 c = a a  = b b = c

  3 a = a + b, b = b - a, a = a - b

18 什么是黏包, 解决黏包的方案

  黏包 : 接收方不知道接收多少数据, 造成黏包数据.

  解决方案 : 引入了一个模块struct, 就是发送方把一个数字打包成一个四字节的bytes, 接收方通过还原数据,这样就知道接收方可以接收多少数据了.

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/gyh412724/p/9495478.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值