了解网络编程

本文介绍了OSI七层网络模型和TCP/IP四层概念模型,包括各层的功能及常用协议。网络接口层负责数据帧的发送和接收,网络层处理IP数据报和路由,传输层确保端到端通信,应用层支持HTTP、FTP等应用。此外,还解析了IP地址、端口号的作用,以及网络字节序的概念,并列举了相关协议如ARP、TCP、UDP等的用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OSI七层网络模型,TCP/IP四层概念模型

OSI七层网络模型

TCP/IP四层概念模型

对应网络协议

应用层

应用层

http  ftp  telnet  

ssh  stmp  pop3

表示层

会话层

传输层

传输层

tcp  udp

网络层

网络层

ip  icmp  igmp

数据链路层

网络接口层

ppp  pptp

物理层

arp  rarp  mpls

应用层{http超文本传输协议   ftp文件传输协议  telnet远程登录   ssh安全外壳协议  stmp简单邮件发送   pop3收邮件}
传输层{tcp传输控制协议,udp用户数据包协议}
网络层{ip网际互联协议 icmp网络控制消息协议 igmp网络组管理协议}
网络接口层{arp地址转换协议,rarp反向地址转换协议,mpls多协议标签交换}

TCP/IP协议族的每一层的作用:

·网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接收。要注意的是数据帧是独立的网络信息传输单元。
·网络层:负责将数据帧封装成IP数据报,并运行必要的路由算法。
·传输层:负责端对端之间的通信会话连接和建立。传输协议的选择根据数据传输方式而定
·应用层:负责应用程序的网络访问,这里通过端口号来识别各个不同的进程。

TCP/IP协议族的每一层协议的相关注解:

ARP:(地址转换协议)用于获得同一物理网络中的硬件主机地址。
MPLS:(多协议标签交换)很有发展前景的下一代网络协议。
IP:(网际互联协议)负责在主机和网络之间寻址和路由数据包。
ICMP:(网络控制消息协议)用于发送报告有关数据包的传送错误的协议。
IGMP:(网络组管理协议)被IP主机用来向本地多路广播路由器报告主机组成员的协议。
TCP:(传输控制协议)为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到相应的应用程序。
UDP:(用户数据包协议)提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输少量数据。

认识ip地址:
IP地址是在IP协议中,用来表示网络中不同主机的地址;
IP协议有两个版本,IPv4和IPv6,但是通常我们使用的都是IPv4;
对于IPv4,IP地址是一个4字节,32位的整数。我们通常用“点分十进制”的字符串表示IP地址,比如:127.0.0.1
在IP数据包头部中,有两个IP地址,分别是源IP地址和目的IP地址。

认识端口号:
有了IP地址,我们可以把数据发送到对方的机器上,但是却还需要一个其他的标识来区分,这个数据是要给哪个进程的。我们的端口号就是这个作用。

端口号是一个2字节16位的整数;
端口号用来表示一个进程,一个端口号只能被一个进程占用;
IP地址+端口号能标识网络上的某一台主机的某一个进程,所以本质上也相当于进程间通信;
IP地址+端口号就是套接字(socket)

网络字节序:
网络字节序时TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型,操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确理解。
网络字节顺序采用(big endian)大端排序方式。
所有机器都按照规定的网络字节序发送接收数据,如果当前发送主机是小端,则需要先将数据转换成大端;否则,就忽略,直接发送。

调用以下库函数做网络字节序和主机字节序的转换:
#include <arpa/inet.h>
unint32_t htonl(unint32_t hostlong);
unint16_t htons(unint16_t hostshort);
unint32_t ntohl(unint32_t netlong);
unint16_t htons(unint32_t netshort);

h表示host主机,n表示network网络,l表示32位长整数,s表示16位短整数
htonl表示将32位的长整数从主机字节序转换为网络字节序,例如将IP地址转换后发送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值