Linux系统编程 第13章学习笔记

TCP/IP和网络编程

 

TCP/IP协议

TCP/IP (Comer 1988, 2001; RFC1180 1991 )是互联网的基础。TCP代表传输控制协议。 IP代表互联网协议。

 

 

 

IP主机和IP地址

主机是支持TCP/IP协议的计算机或设备。每个主机由一个32位的IP地址来标识。为了方便起见,32位的IP地址号通常用点记法表示

IP地址分为两部分,即NetworkID字段和HostID字段。根据划分,IP地址分为A~E 类。

 

IP协议

Ip协议用于在Ip主机之间发送/接收数据包。

 

IP数据包格式

 

 

 

 

路由器

接受和转发数据包

 

 

UDP

UDP (用户数据报协议)在IP上运行,用于发送/接收数据报。

不能保证可靠性,但是快速高效

 

TCP

TCP (传输控制协议)是一种面向连接的协议,用于发送/接收数据流。

稳定传输

 

端口编号

应用程序=(主机IP,协议,端口号)

其中,协议是TCP或UDP,端口号是分配给应用程序的唯一无符号短整数。要想使用 UDP或TCP,应用程序(进程)必须先选择或获取一个端口号。前1024个端口号已被预留。其他端口号可供一般使用。

 

 

 

 

网络和主机字节序

计算机可以使用大端字节序,也可以使用小端字节序。在互联网上,数据始终按网络序排列,这是大端。

 

TCP/IP网络中的数据流

 

 

 

 

网络编程

网络编程平台

·服务器上的用户账户

·单独PC或笔记本电脑

服务器——客户机计算模型

 

套接字编程

套接字地址

·TCP/IP 网络的 sin_family 始终设置为 AF_INET。

·sm_port包含按网络字节顺序排列的端口号。

·sin_addr是按网络字节顺序排列的主机IP地址。

套接字API

·socket()系统调用

创建一个套接字并返回一个文件描述符

·sendto()/recvfrom()

发送/接收数据报

·listen()

将引用的套接字标记为将用于接收连入连接的套接字

·accept()

与基于连接的套接字一起使用

·connect()

建立连接

·send()/read()、recv()/write()

完成数据的收发

主机名和IP地址

gethostname()

gethostbyname()

 

posted @ 2022-10-19 10:51  20201202史婧怡  阅读(25)  评论(0编辑  收藏  举报