一、架构
CS架构:客户端(client)服务端(server)架构
服务端:提供服务的
客户端:享受服务的
BS架构:浏览器(browser)服务端(server)架构
二、网络通信流程(大概的)
应用到的设备及相关
网卡:转化电信号
集线器:将所有连接的设备联通
交换机:升级版集线器
路由器:计算最有转发路径
Mac地址:又称物理地址,由六位十六进制组成1C-1B-0D-74-43-9A,前三位是厂商编号,后三位是生产流水号
全球唯一的
IP地址:由四组点分十进制组成192.168.12.11, 主要作用是划分广播域
子网掩码:计算是否属于同一网段,同一子网
计算方式:将ip地址转化为二进制然后与子网掩码二进制进行按位与运算
例:192.168.12.16
11000000.10101000.00001100.00010000
255.255.255.0
11111111.11111111.11111111.00000000
11000000.10101000.00001100.00000000
192.168.12.0
DHCP协议:自动分配IP地址
arp协议:将IP地址与Mac地址映射
域名与DNS:
因为IP地址不好记忆,所以产生了域名,DNS服务器就是域名与IP地址的映射
三、osi七层模型
左为tcp/ip四层协议,中为tcp/ip五层协议,右为ios七层协议
五层通信流程:
协议的工作机制就是从上到下层层加工,然后发送出去,别人接收后再从底层层层解析最终呈现在屏幕上
关于网络详细的内容之后再了解
四、socket
Socket又称为套接字,它是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。当我们使用不同的协议进行通信时就得使用不同的接口,还得处理不同协议的各种细节,这就增加了开发的难度,软件也不易于扩展(就像我们开发一套公司管理系统一样,报账、会议预定、请假等功能不需要单独写系统,而是一个系统上多个功能接口,不需要知道每个功能如何去实现的)。于是UNIX BSD就发明了socket这种东西,socket屏蔽了各个协议的通信细节,使得程序员无需关注协议本身,直接使用socket提供的接口来进行互联的不同主机间的进程的通信。这就好比操作系统给我们提供了使用底层硬件功能的系统调用,通过系统调用我们可以方便的使用磁盘(文件操作),使用内存,而无需自己去进行磁盘读写,内存管理。socket其实也是一样的东西,就是提供了tcp/ip协议的抽象,对外提供了一套接口,同过这个接口就可以统一、方便的使用tcp/ip协议的功能了。
其实站在你的角度上看,socket就是一个模块。我们通过调用模块中已经实现的方法建立两个进程之间的连接和通信。也有人将socket说成ip+port,因为ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序。 所以我们只要确立了ip和port就能找到一个应用程序,并且使用socket模块来与之通信。
结合五层通信流程图来看,socket在哪一层呢,如下图
socket在内的五层通讯流程: