网络基础(二)

打印 上一主题 下一主题

主题 1817|帖子 1817|积分 5451

认识IP地点
IP 协议有两个版本, IPv4 和 IPv6.
IP 地点是在 IP 协议中, 用来标识网络中不同主机的地点;
对于 IPv4 来说, IP 地点是一个 4 字节, 32 位的整数;
  我们通常也使用 "点分十进制" 的字符串表示 IP 地点, 比方 192.168.0.1 ; 用点 分割的每一个数字表示一个字节, 范围是 0 - 255;

跨网段的主机的数据传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或 多个路由器.
在局域网通讯的过程中 主要依靠的是MAC地点 并且源MAC和目的MAC地点它是会不绝变化的 
 Mac 地点不绝在变
IP 地点在整个路由过程中,不绝稳定目的
IP 是一种长远目标,Mac 是下一阶段目标,目的 IP 是路径选择的重要依 据,mac 地点是局域网转发的重要依据
也就是设备发送的信息会有两套地点IP和MAC地点 

以太网为什么会叫以太网 这里的以太是物理学上推测失败的概念 借用它来形象地形貌网络中数据流传的特性,即数据信号通过一种共享的、无形的介质进行传输。
避免碰撞检测都是以太网 
令牌环中时只有持有令牌的设备才可以或许发送信息 别的设备只能担当和匹配信息 
 

将路由器看做主机  如许就相称于在局域网中心接通讯了  工作在网络层以及以上的设备也具有路由的功能  路由器要有两套接口赫尔两套步伐 


在发送的设备中 网络层也有本身的IP地点 也具有本身的路由功能  而在同一个子网中 各人IP地点的前缀是相同的 以是通过目的IP地点的前缀与本身的前缀进行判断 就能区分  如果是相同IP地点 那么说明这个数据是在当前1局域网流传的  如果前缀不同 说明要进行垮局域网流传 

为什么能找到路由器 ? 在上网时路由器就已经毗连好了

封装 MAC帧 src MAC A dst MACleft  
解包(路由器) 找B  封装  src MACright  dst MACB   B设备收到后进行MAC地点匹配 匹配乐成后担当解包分用  在这整个过程中IP稳定  网络层全网统一 拿到的报文一样  
局域网的标准多样化  解决通过网络层屏蔽差异化 (软件解决) 同时IP MAC是汗青发展的产物 

IP网络层的意义: 提供网络虚拟层,让天下的全部网络都是 IP 网络,屏蔽 最底层网络的差异

socket编程
 明白IP地点和目的IP地点
1.IP地点唯一  2.IP地点分类 
但是体系中,同时会存在非常多的历程,当数据到达目标主机之后,怎么转发给目标 历程?这就要在网络的配景下,在体系中,标识主机的唯一性。
总结 (用户)历程 +网络(os)-> 网络(对方主机的os)+历程(对端用户)

端口号port
• 端口号是一个 2 字节 16 位的整数;
• 端口号用来标识一个历程, 告诉操纵体系, 当前的这个数据要交给哪一个历程来 处置惩罚;
• IP 地点 + 端口号可以或许标识网络上的某一台主机的某一个历程;
• 一个端口号只能被一个历程占用.
端口号范围划分
• 0 - 1023: 知名端口号, HTTP, FTP, SSH 等这些广为使用的应用层协议, 他们的 端口号都是固定的.
• 1024 - 65535: 操纵体系动态分配的端口号. 客户端步伐的端口号, 就是由操纵 体系从这个范围分配的.
网络通讯的本质 历程间通讯 IP+端口=socket 
端口号 与 pid 
这里为什么不统一使用pid 这里是为了 网络与操纵体系之间进行解耦合  
如何识别端口号 
操纵体系通过哈希表存储端口号与历程的映射关系
如果出现来不及拿走数据导致数据挤压  那么os管理就需要通过struct对其进行形貌管理  操纵体系担当数据放入管理队列 历程从队列中拿数据 这里是典型的消费者 生产者模型


明白源端口号和目的端口号
传输层协议(TCP 和 UDP)的数据段中有两个端口号, 分别叫做源端口号和目的端口号. 就是在形貌 "数据是谁发的, 要发给谁"

ip+port 叫做套接字 socket
认识 TCP 协议
• 传输层协议 • 有毗连 • 可靠传输 • 面向字节省
认识 UDP 协议
• 传输层协议 • 无毗连 • 不可靠传输 • 面向数据报
这里的可靠不可靠传输是特性 不是优缺点 

字节省 (水流) 数据报(快递)  读与发有无关系做区分

网络字节序
内存中的多字节数据相对于内存地点有大端和小端之分, 磁盘文件中的 多字节数据相对于文件中的偏移地点也有大端小端之分, 网络数据流同样有大端小端之 分.
网络字节序:采用大端字节序,确保网络通讯的一致性。

hton接口

h 表示 host,n 表示 network,l 表示 32 位长整数,s 表示 16 位 短整数。 

点分十进制格式的IP地点 "192.168.34.45",
P地点在网络通讯中通常以4个字节(即4个char范例)的形式表示,这4个字节分别对应IP地点的四个部分(192, 168, 34, 45)。
struct ip 的布局体,用于存储IP地点的四个字节。布局体包含四个字符型变量 p1, p2, p3, p4,分别对应IP地点的四个部分。指向 struct ip 范例的指针 struct ip * addr,用于操纵和访问IP地点数据。

socket 编程接口
  1. C
  2. // 创建 socket 文件描述符 (TCP/UDP, 客户端 + 服务器)
  3. int socket(int domain, int type, int protocol);
  4. // 绑定端口号 (TCP/UDP, 服务器)
  5. int bind(int socket, const struct sockaddr *address,
  6. socklen_t address_len);
  7. // 开始监听 socket (TCP, 服务器)
  8. int listen(int socket, int backlog);
  9. // 接收请求 (TCP, 服务器)
  10. int accept(int socket, struct sockaddr* address,
  11. socklen_t* address_len);
  12. // 建立连接 (TCP, 客户端)
  13. int connect(int sockfd, const struct sockaddr *addr,
  14. socklen_t addrlen);
复制代码
sockaddr 布局
在网络编程中套接字种类非常多   
常见的有网络socket (网络+本地) 和 本地socket    统一socket接口 设计了struc socketaddr
当需要调用详细种类的布局体 时 通过强制范例转换就可以实现  那么如何区分不同种类的socket 

通过布局体中的16位端口号进行区分 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表