关于网络编程的一些东西的小总结。
一.OSI模型和TCP/IP模型
OSI模型 TCP/模型
应用层 | 文件传输协议(FTP) 远程登录协议(Telnet) 电子邮件协议(NFS) 网络文件服务协议(NFS) 网络管理协议(SNMP) | 应用层 |
表示层 | ||
会话层 | ||
传输层 | TCP UDP | 传输层 |
网络层 | IP ICMP APP PAMP | 网络层 |
数据链路层 | Ethernet IEEE 802.3 FDDI Token-Ring/IEEE 802.5 ARCnet PPS/SLIP | 网络接口层 |
物理层 | 硬件层 |
二.TCP和UDP
2.TCP、UDP的概念和区别
2.1. 概念
TCP—传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
UDP—用户数据报协议,是一个简单的面向数据报的运输层协议。UDP是不保证可靠的无连接协议,因为不需要连接,所以可以进行高效率的传输。
2.2. 区别
(1)TCP是面向连接的,UDP面向无连接。
(2)UDP程序结构相对TCP较简单。
(3)TCP面向字节流,UDP面向数据报。
(4)TCP能保证数据正确性,UDP可能丢包。
(5)TCP保证数据顺序到达,UDP不能保证 。
3.简述的TCP、UDP优缺点
TCP
优点:可靠稳定(数据无误、无丢失、无失序、无重复性到达)。
缺点:传输慢、效率低,占用系统资源,已被攻击。
UDP
优点:由于是无连接的传输,所以传输效率快、相对比TCP安全。
缺点:不可靠、不稳定。
4.TCP、UDP实用场景
TCP:传输一些对信号完整性和信号质量要求高的信息。
UDP:对网络质量要求不高(例如:山区信号不好)或网络通讯速度要求快的场景。
5.TCP为什么是可靠连接?
因为TCP传输的数据要满足3大条件:
1)不丢失
2)不重复
3)按顺序到达
6. socket 套接字
socket又称“套接字”,应用程序常通过它像网络发出请求,来使得进程间可以完成通信。
socket类型
(1)流式套接字(TCP)
(2)数据报套接字(UDP)
(3)原始套接字
7.端口号
inet_addr(); 将主机字节序(192.168.2.97)转换成网络字节序
inet_ntoa(); 将网络字节序转换成主机字节序。
8.IP地址
htons(); 主机字节序 -----> 网络字节序
ntohs(); 网络字节序 -----> 主机字节序