linux网络编程之IP协议首部格式与其配套使用的四个协议(ARP,RARP,ICMP,IGMP)和TCP、UDP协议头结构总结

首先声明,这篇博客是几篇博客转载然后总结在一起的,只当是学习笔记,不在意是什么原创和转载了,学到东西就好。

1、IP协议首部格式(IP协议处余网络层)

 

IP数据报首部图片格式:
最高位在左边,记为0 bit;最低位在右边,记为31 bit

 

头部代码结构如下

 

//定义IP首部typedef struct _iphdr{unsigned char h_lenver; //4 位IP版本号+4位首部长度unsigned char tos; //8位服务类型TOSunsigned short total_len; //16位IP包总长度(字节)unsigned short ident; //1 6位标识, 用于辅助IP包的拆装unsigned short frag_and_flags; //3位标志位+13位偏移位, 也是用于IP包的拆装unsigned char ttl; //8位IP包生存时间 TTLunsigned char proto; //8位协议 (TCP, UDP 或其他)unsigned short checksum; //16位IP首部校验和,最初置零,等所有包头都填写正确后,计算并替换.unsigned int sourceIP; //32位源IP地址unsigned int de

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291800.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无线安全***--启程

无线安全将来会成为一个值得重视的领域,现在无线的普及大大的方便我们的生活,同时在带来的便利的同时也会给我带来新的威胁!下面我来通过cdlinux以及BT5来演示现在比较常见的无线***之战。攻破解我们都知道现在的个人无线局域网基本都会使用w…

Java读取word文件,字体,颜色

在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性。但由于需要,要把doc文档中的内容(字体,下划线,颜…

.NET 20周年软件趋势随想

从2000年微软启动.NET战略时,我还是一位大学生,当年著名的黑客Miguel de Icaza , Miguel 为了寻找GNOME项目开发框架经过充分的调研启动了一个志存高远的项目:Mono,一个Microsoft .NET Framework的自由GNU/Linux实现,我…

第二节 安装CentOS

Linux 第二节一、安装VNware workstation 10二、安装CentOS 1.root/123456 用户登录[rootlocalhost ~]# 2.关机 init 0 3.ifconfig -a:查询ip等信息 4.dhclient :生成自动获取IP 5.手动配置网卡:ipad./setup/编辑网卡配置文件: vi /etc/sysc…

c++ console 取实时输入_灵活使用 console 让 js 调试更简单

译者:前端小智原文: https://medium.com/mattburgess/beyond-console-log-2400fdf4a9d8https://medium.freecodecamp.org/10-tips-to-maximize-your-javascript-debugging-experience-b69a75859329Web开发最常用的高度就是 console.log ,虽然…

windows之DNS7种资源记录和flushdns命令清除DNS缓存以及nslookup解析域名和ipconfig/all命令查看网络配置使用总结

1、DNS7种资源记录 DNS分为正向查找区域和反向查找区域,然后在分为,主要,辅助,存根区域,在这些区域里,又存在着很多的记录,今天,就让我们来看看这些记录:1,A记…

第2章 C语言概述

学习笔记——《C Primer Plus》 第2章 C语言概述2.1 简单的C程序实例2.2 实例解释2.2.1 快速概要1. #include指令和头文件2. main() 函数3. 声明4. 赋值5. printf() 函数5. return 语句2.3 简单程序的结构2.4 多个函数2.1 简单的C程序实例 #include <stdio.h> int main(…

KMP学习

2019独角兽企业重金招聘Python工程师标准>>> 从头到尾彻底理解KMP 字符串匹配的KMP算法 KMP算法的Next数组详解 package leetcode;import java.util.Arrays;public class ImplementStrStr {public int strStr(String haystack, String needle) {if(haystacknull||ne…

MVC应用程序实现文件库(FlexPaper)

很久之前Insus.NET在实现了《FlexPaper实现文档在线浏览》http://www.cnblogs.com/insus/archive/2011/07/21/2112369.html。 当时也只是实现了显示而已&#xff0c;也没有实现在线转换功能。现在&#xff0c;Insus.NET已经从asp.net转向了asp.net MVC应用程序开发了。因此再想…

海量数据处理面试题集锦

十七道海量数据处理面试题与Bit-map具体解释作者&#xff1a;小桥流水&#xff0c;redfox66&#xff0c;July。前言本博客内以前整理过有关海量数据处理的10道面试题&#xff08;十道海量数据处理面试题与十个方法大总结&#xff09;&#xff0c;此次除了反复了之前的10道面试题…

如何避免在迭代集合为 null 时抛出的空引用异常?

咨询区 Polaris878我在遍历集合时&#xff0c;经常会遇到集合为 null 的情况&#xff0c;比如下面这样&#xff1a;int[] returnArray Do.Something(...);拿到数组后&#xff0c;接下来我用下面的方式进行遍历。foreach (int i in returnArray) {// do some more stuff }说实话…

java之解析DNS的SRV记录

1、导入相应的jar包 导入sjava-2.1.6.jar包&#xff0c;今天上传资源有问题&#xff0c;下次传了之后再补充到这里。 2、关键代码 public static List<String> resoveSrv(String query) {// String s "ramuh.example.com"; // the inputted string, I …

c#队列取值_C# 队列

1 Queue23 usingSystem;4 usingSystem.Collections.Generic;5 usingSystem.Linq;6 usingSystem.Text;7 usingSystem.Threading;89 namespaceDataStructure10 {11 /// 12 ///队列接口13 /// 14 interface IQueue15 {16 void EnQueue(T elem); //入队列操作17 T DeQueue(); //出队…

中小企业项目的痛VS感人IT团队

早上&#xff0c;接到客户电话&#xff0c;dynamics CRM不能用了&#xff0c;此客户从开始安装程序开始二次开发期间&#xff0c;因电源问题导致服务器多次意外断电&#xff0c;至今也不加UPS电源。前几次&#xff0c;都不是很严重&#xff0c;服务器没有大量文件损坏&#xff…

java的linux执行的shell

2019独角兽企业重金招聘Python工程师标准>>> #!/bin/sh #该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用&#xff0c; #也可以作为启动java程序的独立脚本来使用。 # # #警告!!!&#xff1a;该脚本stop部分使用系统kill命…

统计 Github 2021 贡献过的开源项目

统计一下 2021 贡献过的开源项目Intro新的一年的开始了&#xff0c;有很多总结和回顾还没有做&#xff0c;今天就盘点一下贡献过的开源项目吧~起初想着手动地通过 Github Dashboard 来统计但是感觉有些麻烦&#xff0c;还得一个个地复制标题链接等&#xff0c;好麻烦&#xff0…

linux c之<setjmp.h>使用总结

1、爆代码 #include<setjmp.h> #include<unistd.h> #include<stdio.h> #include<stdlib.h>void f1(int, int, int, int); void f2(void);static jmp_buf jmpbuffer; static int globval; int i = 4; int main(void) {int autoval;register i…

Unit Three-Program test

编程练习——《C Primer Plus》 Unit Three-Program test Program_test_5 /* Program Test :一年大约有 3.15610^7秒。编写一个程序&#xff0c;提示用户输入年龄&#xff0c;然后显示该年龄对应的秒数。 */ #include<stdio.h> int main(void) {int i_age;double d…

IntentService使用

说实话&#xff0c;对于这个类在我实际工作中并没有用到过&#xff0c;通常也只是用了它的父类Service&#xff0c;通过官方文档可以看出类的层次结构: 而在今年的一次面试当中&#xff0c;有个面试官提起了它&#xff0c;所以虽说目前还没有真实在项目中用它&#xff0c;但是有…

如何使用 Barracuda 防火墙设置/保护 Azure 应用程序

&#xfeff;&#xfeff;如果某企业在 Windows Azure 上托管某个应用程序&#xff0c;该应用程序会在某个特定时间暴露到 Internet&#xff0c;以用于商业用途。公共 Internet 带来客户的同时也带来了攻击者。 Tim Omta 发表的新博客文章中介绍了如何使用 PaaS 应用程序之前的…