linux网络编程基础知识

linux网络编程基础知识

协议

一组规则。数据传输和数据的解释的规则。
TCPIPUDPARPMQTTHTTPModbus协议等等
TCP协议注重数据的传输。http协议着重于数据的解释。

传输层 常见协议有TCP/UDP协议。
应用层 常见的协议有HTTP协议,FTP协议。
网络层 常见协议有IP协议、ICMP协议、IGMP协议。
网络接口层 常见协议有ARP协议、RARP协议。

  • TCP传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。

  • UDP用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。

  • HTTP超文本传输协议,是互联网上应用最为广泛的一种网络协议。

  • FTP文件传输协议

  • IP协议是因特网互联协议

  • ICMP协议是Internet控制报文协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

  • IGMP协议是 Internet 组管理协议,是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。

  • ARP协议是正向地址解析协议,通过已知的IP,寻找对应主机的MAC地址。

  • RARP是反向地址转换协议,通过MAC地址确定IP地址。

分层模型结构

在这里插入图片描述

  • OSI七层模型

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

  • TCP/IP模型

TCP/IP:网(链路层)、网、传、应

应用层:telnetnfse-mailsshftp 。。。
传输层:tcpudp
网络层:ipicmpigmp
链路层:以太网帧协议、ARP

数据封装

应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部,称为封装

在这里插入图片描述

数据没有封装之前,是不能在网络中传递。不同的协议层对数据包有不同的称谓

  • 在传输层叫做段(segment)
  • 在网络层叫做数据报(datagram)
  • 在链路层叫做帧(frame)

数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

以太网帧和ARP请求

  • 以太网帧格式

在这里插入图片描述

源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的。ifconfig命令查看,“HWaddr 00:15:F2:14:9E:3F”部分就是硬件地址

在这里插入图片描述

以太网帧中的数据长度规定最小46字节,最大1500字节,ARPRARP数据包的长度不够46字节,要在后面补填充位,上面的第一个框框就是mtu的最大值,有效载荷长度。

  • ARP数据报文格式

在这里插入图片描述

应用程序知道目的主机的IP地址和端口号,不知道目的主机的硬件地址, 而数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。源主机发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填FF:FF:FF:FF:FF:FF表示广播),目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中。

在这里插入图片描述

每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟)

在这里插入图片描述

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

IP协议

  • 版本:IPv4IPv6。4位表示

  • TTLtime to live , 设置数据包经过路由节点中的跳转上限,每经过一个节点,那么该值就-1。当减为0的路由有义务将该数据包给丢弃。

  • 4字节32位的源IP地址和4字节目的IP地址。 其中的192.168.1.108为点分十进制IP地址,实际上他是string类型的。而这里是二进制的。

hjhj

传输层协议

(1)、UDP

在这里插入图片描述

  • 包含16位的源端口号和16位的目的端口号。 2^16 = 65536 , 所以最大能描述的端口号为65535

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

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

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

(2)、TCP

在这里插入图片描述

  • 16位的端口号和目的端口号。
  • 32位序号和32位确认序号。确认可靠链接
  • 6个标志位:URGACRPSHRSTSYNFIN
  • 16位的窗口大小

CS和BS模型

  • c/s模型:client-server 客户端服务器模型

  • b/s模型:browser-server浏览器服务器模型

C/SB/S
优点可以缓存大量的数据,协议选择灵活、速度快安全性高、跨平台好、开发工作量小
缺点安全性低、跨平台差、开发工作量较大不能缓存大量数据,严格遵守HTTP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值