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系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置