1. 实现网络通信需要哪些支持?
- 通信设备:网卡(PC机自带),交换机,路由器,光纤,电缆,基站。
- 通信协议:操作系统自带协议栈(Linux的特点:丰富的协议);裸机开发需要独立的协议栈
- 套接字的作用:传输层的文件描述符
类型:流式套接字(TCP)、数据报套接字(UDP——数据报形式)
简单的网络通信只需要学会使用系统API
2. 什么是通信协议及作用?
含义:通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。简单来说,就是通信双方确定一种数据格式,以及通过什么形式来发送。
作用:通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,使其能协同工作实现信息交换和资源共享。
3. TCP/IP协议栈
OSI七层网络模型,Linux四层网络模型
OSI七层网络模型 | Linux四层网络模型 | 对应的协议 |
---|---|---|
应用层 | 应用层 | TFTP,FTP,NFS,WAIS |
表示层 | 应用层 | Telnet,Rlogin,SNMP,Gopher |
会话层 | 应用层 | SMTP,DNS |
传输层 | 传输层 | TCP,UDP |
网络层 | 网际层 | IP,ICMP,ARP,RARP,AKP,UUCP |
数据链路层 | 网络接口层 | PDN,SLIP,PPP |
物理层 | 网络接口层 | IEEE 802.1A,IEEE 802.2 |
OSI七层网络模型中每层的作用:
物理层:通信介质的信号到数字信号(二进制)的转换;
数据链路层:局域网之间计算机通信通过MAC地址(物理网卡)通信;
网络层:IP地址,路由(通过公网IP来访问全世界);
传输层:TCP、UDP、端口
会话层:控制发包的数据
表示层:文件格式
应用层:应用程序的使用
分层的好处:
1、各层之间是独立的
2、灵活性强
3、结构上可以分开
4、易于维护
5、能促进标准化工作
TCP/IP协议栈的作用:
协议栈实现数据的压缩加密和解压解密
4. IP地址
IP地址:实际上是32位的二进制数
公网IP(广域网通信):
A类:1.0.0.1~126.255.255.254
B类:128.0.0.1~191.255.255.254
C类:192.0.0.1~223.255.255.254
D类:224.0.0.1~239.255.255.254
E类:240.0.0.1~255.255.255.254
私网(局域网):
A类:10.0.0.1~10.255.255.255
B类:172.16.0.0~172.255.255.255
C类:192.168.0.0~192.168.255.255
IPv4的地址范围:0.0.0.0~255.255.255.255
如何解决IP地址荒:
1、IPv6
2、网络地址转换NAT()
一些协议的作用:
DNS:将域名解析成IP地址
SMTP:邮件发送
FTP:下载/上传文件
IP:定义IP地址解析
子网掩码的作用:决定一个网段的大小(可用IP数量)
同一个网段的IP才可以直接相互通信,不同网段需要路由器。
举例说明:
192.168.11.0/24:8个可用
192.168.11.0 网络号
192.168.11.255 广播地址
5. 端口号
端口的作用是对TCP/IP体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程能够互相通信。
协议 | 端口号 |
---|---|
FTP | 21 |
TELNET | 23 |
SMTP | 25 |
DNS | 53 |
TFTP | 69 |
HTTP | 80 |
著名端口号:0~1023
注册端口号:1024~49151
动态端口号:49152~65535
6. TCP报文格式
TCP协议的特点:面向连接、可靠的字节流传输
校验方式:
1、奇偶校验
2、bcc异或校验
3、crc循环冗余校验
4、MD5校验和数字签名
5、海明码校验
TCP在局域网中传输数据的长度=1518-18-20-20=1460bit;
广域网传输不限定大小,因为超过大小时会自动进行拆包。
7. TCP如何建立连接
通过三次握手建立连接;通过四次挥手端口连接。
网络通信是全双工的。
8. UDP协议(无连接不可靠)
- UDP传输数据的最长长度
局域网:UDP传输数据的最长长度=1518-18-20-8=1472bit
广域网:UDP传输数据的最长长度=65535-IP(头20)-UDP(8)=65507bit,使用sendto函数发送超过65507会返回错误。 - 协议的特点:
1、无连接,减少了开销和发送数据前的延迟
2、尽最大努力进行交付(不保证可靠交付),主机不需要维持复杂的连接状态表
3、面向报文:发送方的UDP对应用程序交付下来的报文,在添加首部之后就向下交付给IP层,既不拆分也不合并
4、没有阻塞控制
5、支持一对一、多对一和多对多交互通信
9. TCP和UDP的对比
特点 | TCP | UDP |
---|---|---|
是否连接 | 连接 | 不连接 |
是否可靠 | 可靠,使用流量控制和拥塞控制 | 不可靠,不使用流量控制和拥塞控制 |
连接对象的个数 | 只能一对一 | 支持一对一、多对一和多对多交互通信 |
传输方式 | 面向字节流 | 面向数据报 |
前部开销 | 开销大,首部最小20字节,最大60字节 | 开销小,8字节 |
适用场景 | 适用于要求可靠传输的应用 | 适用于实时应用 |
10. C/S
- 优点:
1、由于客户端实现与服务器的直接连接没有中间环,因此响应更快
2、操作界面漂亮,形式多样,可以充分满足客户自身的个性化要求
3、C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程 - 缺点:
1、需要安装专门的客户端程序,分布功能弱针对面广,且不具备网络条件的用户群体不能够实现快速不是和安装
2、兼容性差,对不同的开发工具,具有较大的局限性,采用不同的工具需要程序改写程序
3、开发成本高,需要具有一定的专业水平的技术人员才能完成
11. B/S
- 优点:
1、具有分布式特点,可以随时随地进行查询、浏览等业务
2、业务扩展简单,通过增加网页即可增加服务器功能
3、维护方便,只需要改变网页,即可实现所有用户同步更新
4、开发简单 - 缺点:
1、表现要达到C/S程序的程度需要花费不少精力
2、速度和安全上需要花费巨大的设计成本,这是B/S架构最大的问题