一、基础
1、网络编程
- 网络编程的本质是多台计算机之间的数据交换
- 存在问题
- 如何准确的定位网络上一台或多台主机
- 如何进行可靠传输
2、网络协议
- 在计算机网络有序的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。
3、什么是TCP/IP和UDP
- TCP/IP即传输控制/网络协议,是面向连接的协议,发送数据前要先建立连接(发送方和接收方的成对的两个之间必须建 立连接),TCP提供可靠的服务,也就是说,通过TCP连接传输的数据不会丢失,没有重复,并且按顺序到达
- UDP属于TCP/IP协议族中的一种。是无连接的协议,发送数据前不需要建立连接,是不可靠性的协议。
二、网络体系
1、OSI七层模型
应用层 | 通过应用层协议,提供应用程序便捷的网络服务调用 |
HTTP、FTP、SMTP |
表示层 | 关注所传递信息的语法和语义,管理数据的表示方法,传输的数据结构 |
Telnet |
会话层 | 利用传输层提供的服务,在应用程序之间建立和维持会话 | DNS |
传输层 | 将数据从源端口发送到目的端口(进程到进程) 网络层定位到一台主机,传输层的作用域具体到主机上的某一个进程 |
TCP、UDP |
网络层 | 将数据包跨越网络从源设备发送到目的设备 | IP、ARP |
数据链路层 | 实现相邻(Neighboring)网络实体间的数据传输 将比特流划分成“帧“ |
|
物理层 | 实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽具体传输介质在物理上的差异 |
2、TCP/IP四层模型
应用层 |
传输层 |
网络层 |
网络接口层 |
三、TCP/UDP
1、TCP三次握手
- 客户端发送带有SYN标志的数据包
- 服务端发送带有SYN/ACK标志的数据包
- 客户端发送带有ACK标志的数据包