网络基础:
网络应用程序设计模式:
- C/S- client/server
- 优点:1.协议选用灵活 2.可以缓存数据
- 缺点:1.对用户安全构成威胁 2.开发工作量大,调试困难
- B/S-browser/server
- 优点:跨平台
- 缺点:只能使用http
2.协议的概念
- 規則:数据传输和数据解释的规则
- 原始协议:-->(改进、完善)-->标准协议
- 典型协议:TCP/ Udp Http Ftp IP ARP
3.分层模型
7层模型-OSl:
- 物-物理层 双绞线,光纤 -----底层
- 数-数据链路层 数据传输和错误检测
- 网-网络层 为数据包选择路由
- 传-传输层 提供端对端的接口tcp/udp
- 会-会话层 解除或建立与别的结点的联系
- 表-表示层 数据格式化,代码转换,数据加密
- 应-应用层 文件传输,电子邮件,文件服务,虚拟终端 -----上层
Tcp/IP四次模型:
- 数据传输层 --以太网帧协议等
- 网络层 --IP等
- 传输层 --tcp/udp等
- 应用层 --ftp,http,ssh等
4.协议格式
--数据包的封裝思想
(1)以太网帧协议--借助mac地址完成数据报传递
子协议:arp数据报-----根据|P获取mac地址(网卡编号)
假如你在北京发消息给广州,想发过去要知道对方的mac地址
因为发送数据包的北京不知道目的方的mac地址,所以要填充FF
(2)IP协议包:
4位的版本:ipV4ipv6
8位的生存肘间(TTL):最多能经过多少跳
32位的源IP地址:数据发送端地址
32位的目的IP地址:数据接收端地址
(3)UDP数据包格式:
- 16位源端口
- 16位目的端口:
进程
1.-进程ID
2.网络环境中
- IP-定位一台主机
- Port-定位一个进程
- IP:127.0.0.1:80 端口号
3.端口:16位 2的16次方 65535
(4)TCP数据包
- 16位源端口
- 16位目的端口
- 32位序号
- 32位确认序号
- 6个标志位
- 16位滑动窗口 //当两端处理速度不协调的时候,控制其中的一端阻塞
5.数据的发送和接收
6.TCP与UDP传输层协议
tcp:面向连接的安全的流式传输协议
- 连接的时候,进行三次握手
- 数据发送的时候,会进行数据确认,数据丢失之后,会进行数据重传
udp:面向无连接的不安全的报式传输
- 连接的时候不会握手
- 数据发送出去之后就不管了
- 数据只有全部丢失和不丢失两种情况,不存在部分丢失
7.Socket编程
什么是socket?
- 网络通信的函数接口
- 封装了传输层协议
1.套接字概念
- IP地址:
- 端口号:
- IP+Port:
2.网络字节序
- 大端
- 小端:
- 相关函数:
- 头文件:# include<arpa/ inet. h>
- 类型:int->int
- 主机字节顺序->网络字节顺序
3.套接字
- 创建成功,得到一个文件描述符fd
- fd操作的是一块内核缓冲区