网络的世界

DNS的作用就是用来找到域名所对应的 IP地址
位于 网络层 的 IP 协议,大家所熟知的 IP地址 就是由它进行封装并传往下一层
位于 传输层 的 TCP/UDP 两个协议, 一个是面向连接(STREAM), 一个是面向数据(DGRAM)的
MAC地址:对于网络上的主机而言,每一台主机就有一个专属的 MAC地址
端口号则是相当于一个房子的门,这个比喻在各大教材中广泛引用,但也的确贴切,假设 IP地址 是房子的地址,那么到了别人家要知道门在哪才行。
一个完整的应用程序传输数据时候 封装 的过程(从右向左依次封装)如图:
这里写图片描述

其中端口号实际上就是 应用程序的信息,接收数据时的 拆解 顺序与 封装 正好相反。

MAC地址是 48bit 的, 前24bit由 IEEE 分配, 后24bit 由厂商分配。原则上是唯一的.

域名 和 IP地址 的互查
gethostbyname 用于域名查找 IP信息及各类信息
struct hostent * gethostbyname(const char * hostname)
struct hostent 是存储查找到的各类型信息,后方会有介绍
hostname 即要查询的域名
gethostbyaddr 用于IP地址查找 域名及各类信息
struct hostent * gethostbyaddr(const char * addr, socklen_t len, int family)
addr 是要查询的 IP地址,之所以是 const char * 是因为C语言历史遗留的原因,实际上其类型应为 struct in_addr *(IPv4)
len 地址的长度,即 IPv4 为4, IPv6 为16
family 即协议的种类, IPv4 为 AF_INET, IPv6 为 AF_INET6
这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值