内容概要

  • 软件开发架构
  • 网络理论
  • OSI七层协议
  • TCP协议物理连接层功能
  • UDP协议

软件开发架构

1.c/s架构
  c:clinet客户端
  s:server服务端

  服务端需要具备的三大特征:
     1.24小时不间断提供服务
     2.固定的ip地址
     3.可以服务多个用户

2.b/s架构
  b:browser浏览器
  s:server服务器

  浏览器统一充当各个服务器的客户端
  b/s架构本质上也是c/s架构

网络理论

网络编程其实就是程序之间的数据通信

远程传输技术最早来源于美国军方

要想实现远程数据交互前提必须要有物理连接介质
除了物理连接介质还有一些能够保证数据无碍交互的东西(标准)OSI七层协议

OSI七层协议

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

# 开发层面可以归纳为5层
应用层
传输层
网络层
数据链路层
网络连接层

物理连接层功能

提供一个物理连接接口(网口,无线网卡)

数据链路层功能

1.规定了电信号的分组方式
2.以太网协议

常见硬件

交换机:能够使接入该机器的所有计算机之间批次互联
局域网:由交换机组成的网络(基于mac地址数据传输)
互联网:多个局域网之间互联
路由器:能够连接多个局域网并实现局域网之间数据传输

网络层功能

IP协议:规定了接入互联网的计算机必须有一个ip地址用于唯一标识
IPV4:最小 0.0.0.0
      最大 255.255.255.255
IPV6:无限
arp协议:将ip地址转换成mac地址(基于网络请求)

传输层功能

端口协议:范围 0-65535
         动态分配
端口号基本使用:系统默认使用端口号0-1024
              常见软件端口号1024-8000

端口号能够唯一标识一台计算机正在运行的应用程序
端口号在同一台计算机上同一时刻不能重复使用
ip加端口号能够唯一标识世界上某一台接入互联网的计算机上某一个正在运行的应用程序

TCP协议

别名可靠协议,流式协议

三次握手建立连接
listen监听态:等待对方发出请求
syn_rcvd态:忙于恢复确认建立请求

1. Client端首先发送一个SYN包告诉Server端我的初始序列号是X, 发送[SYN] seq=x。
2. Server端收到SYN后回复给Client一个确认包,告诉Client说我收到了。 Server端也需要告诉Client端自己的初始序列号,于是Server也发送一个SYN包告诉Client我的初始序列号是Y。 [SYN ACK] seq=y ack=x+1 。ack=x+1表示服务器端期望客户端下一次序号从x+1开始。
3. Client收到后,回复Server一个确认包说我知道了[ACK] seq=x+1 ack=y+1

软件平台网关 设计架构_数据链路层

四次挥手断开连接
1. Client发送一个FIN包来告诉Server需要断开
2. Server收到后回复一个ACK确认FIN包收到
3. Server在自己也无数据发送给Client后,Server也发送一个FIN包给Client,表示也无数据发送了
4. Client收到后,就会回复一个ACK确认Server的FIN包

软件平台网关 设计架构_数据链路层_02

UDP协议

别名不可靠协议
数据发送没有通道的概念

软件平台网关 设计架构_软件平台网关 设计架构_03