复习:
C/S结构:
client(客户端) server(服务器)
网络通讯是为了共享数据,拥有数据的一方称之为服务器server
需要数据的一方称之为客户端client
B/S结构:浏览器 服务器
网络通讯:1.物理链接介质 2.通讯协议(使双方都能看懂数据)
OSI开放式系统互联参考模型 七层模型:
物理层,数据链路层,网络册,传输层,会话层,表示层,应用层。
物理层:定义一堆物理相关协议,例如接口外观等。有了物理层就能传输二进制数据
数据链路层:主要是以太网协议:1.数据传输格式 数据帧
2.每个设备要联网,必须具备网卡,每个网卡拥有一个全球唯一的MAC地址。
数据链路层通过广播的方式来查找某一台计算机,在这一层出现了交换机用于组成一个局域网。在局域网中要查找某一台计算机,就通过广播的方式。如果每一次都需要广播,就浪费资源了,所以交换机会自动保存,网口和MAC地址表的映射关系。
问题:广播风暴,没有交换机可以同时处理所有计算机。
网络层:
主要是ip协议
1.每一台设备都必须有一个ip地址,格式:四段三位点分十进制,其中前三段是网络号,最后一段
是主机号。
2.ip数据包 格式
3.子网掩码:
用于标示ip中哪些是网络号,哪些是主机号。
1.端口号
每个应用程序都必须绑定一个端口号,用于标识你是谁 是qq还是微信
端口号不能重复
端口号就是一个整形数字 取值范围0-65535 0-1023为系统保留端口
有了ip和端口号就能 定位到全球某一台计算机上的某一个应用程序
2.传输层主要的传输协议
TCP (传输控制协议) 就像打电话
可靠传输
如何保障可靠
1.三次握手建立链接 其目的是为了确认传输路径可用
2.传输过程中 每一个数据包都需要 确认信息
3.四次挥手断开链接 是为了保障双方数据都已经传输完毕
传输效率低
UDP 像是校园广播
用户数据报协议
不关心数据是否传输成功 ,甚至不关心是否存在
优点:传输效率高
应用层
数据已经通过下面各种协议传入了应用程序
应用程序该如何解析这些数据 ,用它们来干什么
这就是应用程序协议需要关心的问题了
每个应用程序都可以自己定义自己的协议 只要客户端程序和服务器程序能看懂就行
HTTP/HTTPS SMTP FTP
Socket:
什么是socket,翻译为套接字。
咱们只要按照socket编程接口来编写出的代码,就已经遵循了各种协议
简单的说就是一个封装好的模块
要学习的就是模块的使用方法
socket的发展:
最开始socket使用来完成进程间通讯的,并不是用来网络通讯,那时候还没有网络
后来有了网络之后 .基于之前的socket来进行了更新 使其可以支持网络通讯
所以socket分为两种类型
AF_UNIX : 进程间通讯
AF_INET : 网络通讯