linux网络编程1

发布于:2024-09-17 ⋅ 阅读:(14) ⋅ 点赞:(0)

一.TCP/IP协议简介

通过分组来减少协议设计的复杂性,每一层利用下一层提供的服务来为上一层提供服务,每层服务的实现细节对上一层屏蔽

1.TCP/IP的分层结构

OSI过于复杂,所以使用TCP/IP协议
在这里插入图片描述
应用层: 应用程序间沟通的层,与用户交互的程序
     有FTP、HTTP等
传输层: 提供进程的数据传送服务,负责传送数据,提供应用程序端的逻辑通信
    有TCP、UDP等
网络层: 提供基本的数据封包传送功能,最大可能的让每个数据包能够达到目的主机
    有IP、ICMP等
链路层: 负责数据帧的发送和接收
    有ARP

2.协议的简介

(1)IP协议
实现在一个相互连接的网络系统上从源地址到目的地址间传输数据包所提供必要功能

特点:

  • 不可靠:其不能保证数据包能成功到达目的地,仅提供尽力而为的传输服务
  • 无连接:每个数据包都是处理的,IP数据包可以不按发送顺序接收

(2)TCP协议
TCP是一种面向连接的、可靠的为不同主机上的进程间通信

特点:

  • 建立连接->使用连接->释放连接
  • TCP数据包中包含序号和确认序号
  • 对包进行排行并检错,当出现损坏则重新发送

(3)UDP协议
UDP是一种面向无连接的

特点:

  • 发送数据之前不需要建立连接
  • 不对数据包的顺序进行检测
  • 没有检测和重传机制

二、MAC地址和IP地址

1.网卡

称为网络适配器,其通过连接不同计算机,来完成数据通信功能

2.MAC地址

用于标识网络设备,类似身份证,在出厂时分配48bit值
其可以改变,但不建议进行更改
前三组为厂商ID,后三组为设备ID

查询MAK地址:

ifconfig

在这里插入图片描述

3.IP地址

IP地址是一种Internet上的主机编址方式,是任意一台主机在网络中的唯一标识

(1)IP地址的分类

1)ipv4:占32位

其由两部分组成:

网络ID:在IP地址中由子网掩码中1覆盖的连续位,子网掩码十进制表示为255

主机ID:在IP地址中由子网掩码中0覆盖的连续位

在这里插入图片描述
ipv4的分类:

在这里插入图片描述

2)ipv6:占128位

(2)IP地址的特点

子网ID不同的网络不能直接通信,需要路由器转发
主机ID全为0的IP地址为网段地址
主机ID全为1的IP地址为广播地址

(3)回环IP地址

即为 127.0.0.1
主要是测试本机的网络配置,能ping通该地址则说明本机的网卡和IP协议安装没有问题

3.子网掩码

指明IP地址中哪些标识的是主机所在的子网以及那些位标识的是主机号

特点:
必须结合IP地址一起使用,不能单独使用

4.端口

TCP/IP协议采用端口标识通信的进程,用于区分一个系统里的多个进程

特点:

  • 同一个端口中,在不同系统中对应着不同的进程
  • 同一个系统中,一个端口只能被一个进程拥有
  • 一个进程拥有一个端口后,传输层送到该端口的数据全部被该进程接收,同样进程送交传输层的数据也通过该端口被送出

(1)端口号

类似pid标识一个进程;
在网络程序中,用端口号来标识一个运行的网络程序;

特点:

  • 端口号是无符号短整的类型
  • 每个端口都拥有一个端口号
  • TCP、UDP维护各自独立的端口号
  • 网络应用程序,至少要占用一个端口号,也可以占用多个端口号

端口号的分配:

  • 知名端口:由互联网数字分配机构根据用户需要进行统一分配;若强制使用,需要加root特权
  • 动态端口:应用程序通常使用的范围

网站公告

今日签到

点亮在社区的每一天
去签到