Linux网络编程之模型与协议

156 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 22 天,点击查看活动详情

一、模型分类

分层模型结构

OSI七层模型: 物、数、网、传、会、表、应

TCP/IP 4层模型:网(链路层/网络接口层)、网、传、应

  • 应用层:http、ftp、nfs、ssh、telnet。。。

  • 传输层:TCP、UDP

  • 网络层:IP、ICMP、IGMP

  • 链路层:以太网帧协议、ARP

网络传输流程:

- 数据没有封装之前,是不能在网络中传递。

- 数据-》应用层-》传输层-》网络层-》链路层  --- 网络环境

网络通信流程图

网络通信流程.png

c/s模型

client-server

b/s模型:

browser-server

c/s模型与b/s模型比较

C/SB/S
优点缓存大量数据、协议选择灵活,速度快安全性、跨平台、开发工作量较小
缺点安全性、跨平台、开发工作量较大不能缓存大量数据、严格遵守 http

二、协议(一组规则)

  1. 以太网帧协议:

    ARP协议:根据 Ip 地址获取 mac 地址。

    以太网帧协议:根据mac地址,完成数据包传输。

  2. IP协议:

    版本: IPv4、IPv6 -- 4位

    TTL: time to live 。 设置数据包在路由节点中的跳转上限。每经过一个路由节点,该值-1, 减为0的路由,有义务将该数据包丢弃

    源IP: 32位。--- 4字节 192.168.1.108 --- 点分十进制 IP地址(string) --- 二进制

    目的IP:32位。--- 4字节

  3. IP地址:可以在网络环境中,唯一标识一台主机。

    端口号:可以网络的一台主机上,唯一标识一个进程。

    ip地址+端口号:可以在网络环境中,唯一标识一个进程。

  4. UDP:

    16位:源端口号。 2^16 = 65536

    16位:目的端口号。

  5. TCP协议:

    16位:源端口号。 2^16 = 65536

    16位:目的端口号。

    32序号;

    32确认序号。

    6个标志位。

    16位窗口大小。 2^16 = 65536