Linux高性能服务器编程——ch2笔记

2023-10-19 03:04

本文主要是介绍Linux高性能服务器编程——ch2笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第2章 IP 协议详解

2.1 IP服务的特点

无状态:IP通信双方不同步传输数据的状态信息。IP数据报相互独立,缺点是无法处理乱序和重复的IP数据报。上层协议如果是面向连接的协议(TCP),能够自己处理乱序和重复的报文段。IP数据报头部的标识字段是被用来处理IP分片和重组的,不是指接收顺序。优点是简单高效。UDP和HTTP也是无状态的。
无连接:IP通信双方都不长久地维持对方的任何信息。
不可靠:IP协议不能保证IP数据报准确地到达接收端。通知上层协议发送失败,但不重传,使用IP的上层协议需要自己实现数据确认、超时重传。

2.2 IPv4头部结构

image.png
同一个数据报的所有分片都具有相同的标识值。
实际偏移值:13位分片偏移*8,除最后一个分片外,每个分片数据部分长度必须是8的整数倍。
数据报转发过程中,每经过1个路由,TTL减1。

2.3 IP分片

IP数据报超过MTU时,将被分片传输。发生在发送端或中转路由器上,最终在目标机器上组装。
数据报标识、标志、片偏移。
image.png
以太网帧的MTU是1500字节。

2.4 IP路由

image.png
接收到IP数据报首先对IP头部进行CRC校验。
源站选路选项:松散源路由选择或严格源路由选择。
IP路由机制(给定目标IP地址,如何匹配路由表)按顺序:
1)完全匹配IP地址,就使用该路由项;
2)具有相同网路ID的网络IP地址(如网关地址),就使用该路由项;(网路ID:连续255部分,主机ID:连续0部分)
3)默认路由项,下一跳路由是网关。
静态路由更新方式:route命令。
动态路由更新方式:BGP协议、RIP协议、OSPF协议。

2.5 IP转发

主机和路由器都能进行IP转发。

2.6 重定向

ICMP 重定向报文也能用于更新路由表。
image.png

2.7 IPv6头部结构

解决v4地址不够用问题,并做了改进。
IPv6头部由40字节的固定头部和可变长的扩展头部组成。
零压缩法只能用一次。
IPv6协议并不是IPv4协议的简单扩展,而是完全独立的协议。用以太网帧封装IPv6数据报和IPv4数据报具有不同的类型值。第1章提到,IPv4数据报的以太网帧封装类型值是0x800, 而IPv6数据报的以太网帧封装类型值是 0x86dd。

这篇关于Linux高性能服务器编程——ch2笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/236871

相关文章

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指