数据报

速读原著-TCP/IP(采用UDP的路径MTU发现)

风格不统一 提交于 2020-03-07 05:18:42
第11章 UDP:用户数据报协议 11.8 采用UDP的路径MTU发现 下面对使用U D P的应用程序与路径 M T U发现机制之间的交互作用进行研究。看一看如果应用程序写了一个对于一些中间链路来说太长的数据报时会发生什么情况。 例子 由于我们所使用的支持路径 M T U发现机制的唯一系统就是Solaris 2.x,因此,将采用它作为源站发送一份6 5 0字节数据报经s l i p。由于s l i p主机位于M T U为2 9 6的S L I P链路后,因此,任何长于2 6 8字节(2 9 6-2 0-8)且“不分片”比特置为 1的U D P数据都会使b s d i路由器产生I C M P“不能分片”差错报文。图 11 - 1 3给出了拓扑结构和M T U。 可以用下面的命令行来产生 6 5 0字节U D P数据报,每两个U D P数据报之间的间隔是5秒: solaris % sock -u -i -n10 -w650 -p5 slip discard 图11 - 1 4是t c p d u m p的输出结果。在运行这个例子时,将b s d i设置成在I C M P“不能分片”差错中,不返回下一跳M T U信息。 在发送的第一个数据报中将 D F比特置1(第1行),其结果是从b s d i路由器发回我们可以猜测的结果(第 2行)。令人不解的是,发送一个 D F比特置1的数据报(第

程序员内功修炼(四)计算机网络之网络层

元气小坏坏 提交于 2020-02-26 01:27:21
1、网络层功能 2、路由算法与路由协议 3、IP数据报格式 4、IP数据报分片 5、IPV4地址 6、网络地址转换NAT 7、子网划分与子网掩码 8、无分类编址CIDR(构成超网) 9、ARP协议 10、DHCP协议 11、ICMP协议 12、IPV6 13、RIP协议与距离向量算法 14、OSPF协议及链路状态算法 15、BGP协议 16、IP组播 17、移动IP 18、网络层设备 本文参考 https://www.bilibili.com/video/av70228743 来源: oschina 链接: https://my.oschina.net/u/4451096/blog/3166059

抓包神器 tcpdump 使用介绍 (转)

泪湿孤枕 提交于 2020-02-21 17:28:17
tcpdump 命令使用简介 简单介绍 tcpdump 是一款强大的网络抓包工具,运行在 linux 平台上。熟悉 tcpdump 的使用能够帮助你分析、调试网络数据。 要想使用很好地掌握 tcpdump, 必须对网络报文( TCP/IP 协议)有一定的了解。不过对于简单的使用来说,只要有网络基础概念就行了。 tcpdump 是一个很复杂的命令,想了解它的方方面面非常不易,也不值得推荐,能够使用它解决日常工作中的问题才是关键。 选项 tcpdump 的选项也很多,要想知道所有选项的话,请参考 man tcpdump ,下面只记录 tcpdump 最常用的选项。 需要注意的是,tcpdump 默认只会截取前 96 字节的内容,要想截取所有的报文内容,可以使用 -s number , number 就是你要截取的报文字节数,如果是 0 的话,表示截取报文全部内容。 -n 表示不要解析域名,直接显示 ip。 -nn 不要解析域名和端口 -X 同时用 hex 和 ascii 显示报文的内容。 -XX 同 -X ,但同时显示以太网头部。 -S 显示绝对的序列号(sequence number),而不是相对编号。 -i any 监听所有的网卡 -v, -vv, -vvv :显示更多的详细信息 -c number : 截取 number 个报文,然后结束 -A : 只使用 ascii

ICMP学习笔记

放肆的年华 提交于 2020-02-10 17:24:25
一.关于ICMP协议 ICMP(internet control message protocol)协议也叫internet控制报文协议。它是面向无连接的协议,是TCP/IP一个子协议,用于在路由器和主机之间传递控制信息。 二.为什么要用ICMP协议 数据在网络中传输时会封装成IP数据包,而IP协议的特点是面向无连接,且不可靠的,可靠性由上层来保证。IP协议所要做的就是尽最大努力把数据传输到目的地,如果当在路由器的转发中出错了而不能到达目的地时,IP协议对错误不进行任何报告和纠正,此时主机就不知道路由器那边有什么问题。 而ICMP协议正好解决了这个问题。 三.ICMP报文的格式 1类型:一个 8 位类型字段,表示 ICMP 数据包类型; 2代码:一个 8 位代码域,表示指定类型中的一个功能,如果一个类型中只有一种功能,代码域置为 0 3检验和:数据包中 ICMP 部分上的一个 16 位检验和 四.ICMP差错控制与查询报文分类 1.信息不可达:UDP的规则之一是:如果收到UDP数据报而且目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文。 2.源站抑制:当路由器或主机由于拥塞而丢弃数据报时,就向源站发送源站抑制报文,使源站知道应当将数据报的发送速率放慢。 3.时间超过: (1)当路由器收到生存时间为零的数据报时,除丢弃该数据报外,还要向源站发送时间超过报文。

网络编程--Java网络编程入门

人走茶凉 提交于 2020-02-06 03:04:12
Java 网络编程入门 服务器与客户程序只需关心发送什么样的数据给对方,而不必考虑如何把这些数据传输给对方,传输数据的任务由计算机网络完成。 两个进程顺利通信的前提条件是它们所在的主机都连接到了计算机网络上。 网络协议是网络中主机之间通信的语言。 不同网络之间的互联靠网络上的标准语言—— TCP/IP 协议。 OSI 参考模型把网络分为 7 层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。不同主机之间的相同层称为对等层。 物理层:为上一层提供物理连接,以及规定通信节点之间的机械和电气特性。数据作为原始的比特 (bit) 流传输。 数据链路层:数据链路层负责在两个相邻节点间的线路上,无差错地传送以帧为单位的数据。典型设备是交换机。 网络层:选择合适的网间路由和交换节点,确保数据及时传送到目标主机。典型设备是路由器。 传输层:根据通信子网的特性最佳地利用网络资源,为两个端系统的会话层提供建立、维护和取消传输连接的功能,以可靠方式或不可靠方式传输数据。信息的传送单位是报文。 会话层:管理进程间的会话过程,即负责建立、管理、终止进程间的会话。数据传送单位是报文。 表示层:对上层数据进行转换,以保证一个主机的应用层的数据可以被另一个主机的应用层理解。数据传送单位是报文。 应用层:确定进程间通信的实际用途,以满足用户实际需求。

Linux防火墙之iptables入门

假如想象 提交于 2020-02-06 02:05:16
一、防火墙的概念   什么是防火墙?防火墙是一台或一组设备,用以在网络间实施访问控制策略;事实上一个防火墙能够包含OSI模型中的很多层,并且可能会涉及进行数据包过滤的设备,它可以实施数据包检查和过滤,在更高的层次中对某应用程序实现某一策略,或做更多类似的事情。防火墙的功能主要是隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则定义的行为进行处理的一组功能组件,基本上的实现都是默认情况下关闭所有的访问,只开放允许访问的策略;防火墙分主机防火墙、网络防火墙、硬件防火墙、软件防火墙、网络层防火墙、应用层防火墙等;主机防火墙指定的是针对服务当前主机做的访问策略的防火墙;网络防火墙指服务范围为防火墙一侧的局域网;硬件防火墙指在专用硬件级别实现部分功能的防火墙,另一部分功能基于软件实现;软件防火墙指运行于通用硬件平台之上的防火墙应用软件;网络层防火墙指OSI模型下四层的防火墙,主要针对OSI模型下四层的网络报文的访问策略控制;应用层防火墙/代理服务器指OSI模型中的应用层的防火墙,它主要在应用层进行操作,针对应用层的程序数据报文进行访问策略控制; 二、网络型防火墙和应用层防火墙的优缺点   网络层防火墙主要是包过滤,网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表(ACL),通过检查数据流中每个数据的源地址,目标地址

UNP总结 Chapter 22~25 高级UDP套接字编程、高级SCTP 套接字编程、带外数据、信号驱动I/O

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-05 10:54:25
一、高级UDP套接字编程 1.接收标志、目的IP地址和接口索引 作为recvmsg的一个例子,我们将要写一个名为recvfrom_flags的函数,它与recvfrom类似,但他还返回: 返回的msg_flags值 收到的数据报的目的地址(通过设置IP_RECVDSTADDR套接口选项) 接收数据报接口的索引(通过设置IP_RECIF套机口选项) 相关详细代码 见UNP P463 2.何时用UDP代替TCP 使用广播或者多播时候,因为UDP支持广播或多播 类似实时音频应用的程序应使用UDP 对于简单的请求-应答应用程序应使用UDP 对于海量数据传输(例如文件传输)不应该使用UDP 3.给UDP应用增加可靠性 如果我们想要在请求-应答式应用程序中使用UDP,那么我们必须对我们的客户增加两个特性: 超时和重传以处理丢失的数据报 序列号,这样客户可以验证一个应答是对应相应的请求的 这两个特性是多数使用简单的请求-应答范例的现有UDP应用程序的一部分:例如DNS解析器,SNMP代理,TFTP和RPC。 加入序列号比较简单。客户给每个请求附加一个序列号,并且服务器必须在应答中给客户返回这个号,这样可以让客户验证给定的应答是对应所发请求的应答。 老式的处理超时和重传的方法是发送一个请求后等待N秒。如果没有收到应答,则重传并再等待另外N秒。这种情况发生一定次数后放弃。这是一种线性重传定时器

Udp简单的服务器与客户端07

爷,独闯天下 提交于 2020-01-31 10:52:31
UDP协议: UDP协议传输数据是不可靠的,在java中,java.util.DatagramSocket负责接收和发送UDP数据报,java.util.DatagramPacket表示UDP数据表。每个 DatagramSocket与一个本底地址绑定,每个DatagramSocket可以把UDP数据报发送给任意一个远程DatagramSocket,也可以接收来自任意一个远程的 DatagramSocket的UDP数据报。在UDP数据报中包含了目的地址信息,DatagramSocket根据该信息把数据报发送到目的地 UDP服务端 public class EchoServer{ private int port = 8089; private DatagramSocket socket; public EchoServer()throws IOException{ socket = new DatagramSocket(port); System.out.println("服务端启动"); } public String ehco(String msg){ return "ehco:"+msg; } public void service(){ while(true){ try { //创建一个数据报对象 DatagramPacket packet = new

csv文件写入数据报PermissionError错误解决方案

醉酒当歌 提交于 2020-01-31 01:49:17
import os import pandas as pd file = os.getcwd() + '\\html\\600016.csv' data = pd.DataFrame({'a':[1, 2, 3], 'b': [4, 5, 6]}) #要保存的数据 data.to_csv(file, index=False) #数据写入,index=False表示不加索引 运行报错 原因: file所指文件在其他地方打开,关闭即可 来源: CSDN 作者: qq_29169999 链接: https://blog.csdn.net/qq_29169999/article/details/104118863

long[ ]传数据报错解决方法

流过昼夜 提交于 2020-01-29 03:26:02
使用long[ ]保存数据时会报错: 控制台打印数据: 居然多一个括号少一个括号 解决办法1:使用Long[ ] 解决办法2:使用List<> //创建Long类型list集合 List < Long > ids 来源: CSDN 作者: qq_42873808 链接: https://blog.csdn.net/qq_42873808/article/details/103673931