网络通信
文章平均质量分 90
shujuliu818
Where my heart get peace, where my self get home.
展开
-
iptables详解
文章主要对iptables四表五链,以及iptables应用场景做了详细描述转载 2022-07-07 00:21:45 · 24550 阅读 · 1 评论 -
Linux下的ioctl()函数详解
我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的调用个数如下:int ioctl(int fd, ind cmd, …); 其中fd是用户程序打开设备时...转载 2022-01-14 13:05:22 · 5646 阅读 · 0 评论 -
TCP协议是如何保证可靠传输
1、UDP:(1)UDP,user datagram protocol,用户数据报协议,不提供复杂的控制机制,利用IP提供面向无连接的通信服务,并且它是将应用程序发送过来的数据包在收到的那一刻,立即按照原样发送到上的一种机制。(2)即使在网络拥堵的情况下,UDP也无法进行流量控制等避免网络拥塞的行为。此外,在传输过程中如果出现丢包,UDP也不负责重发,甚至当数据包的到达顺序乱掉之后也没有纠正顺序的功能。因此,如果需要这些细节控制的话,就需要在采用UDP协议的应用层去作出处理。(3)由于UDP面向无转载 2021-03-23 15:58:58 · 842 阅读 · 0 评论 -
TCP的三次握手与四次挥手理解及面试题(很全面)
本文经过借鉴书籍资料、他人博客总结出的知识点,欢迎提问序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。...转载 2021-03-23 13:17:42 · 155 阅读 · 0 评论 -
python爬虫实例项目大全
python爬虫实例项目大全WechatSogou[1]-微信公众号爬虫。基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。DouBanSpider[2]- 豆瓣读书爬虫。可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分书籍;可依据不同的...转载 2019-10-16 13:58:34 · 2032 阅读 · 0 评论 -
提高 Linux 上 socket 性能
转自:https://blog.csdn.net/hzrandd/article/details/50578373使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信。与其他 API 一样,您可以通过一些方法使用 Sockets API,从而提高 Socket 的性能,或者限制 Socket 的性能...转载 2018-05-23 14:34:00 · 186 阅读 · 0 评论 -
关于TCP_NODELAY和TCP_CORK选项
关于TCP_NODELAY和TCP_CORK选项转自: https://www.2cto.com/net/201308/238322.html这两个选项都对网络连接的行为具有重要的作用。许多UNIX系统都实现了TCP_NODELAY选项,但是,TCP_CORK则是Linux系统所独有的 而且相对较新;它首先在内核版本2.4上得以实现。此外,其他UNIX系统版本也有功能类似的选项,值得注意的是,...转载 2018-05-23 15:38:37 · 1130 阅读 · 1 评论 -
linux 系统 UDP 丢包问题分析思路
转自:http://cizixs.com/2018/01/13/linux-udp-packet-drop-debug?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。在开始之前,我们先用一张...转载 2018-07-23 10:40:54 · 745 阅读 · 0 评论 -
nodogsplash的内部机制分析
本文转自:https://blog.csdn.net/wind0419/article/details/78413978目前的广告路由器,或多或少都跟wifidog相关,而nodogsplash就是与wifidog一样功能,除了没有远程服务器认证之外。对于其内部分析,以nodogsplash开始较为方便。其本质为:标记包,然后针对标记的包做防火墙规则更新。主要用到iptables几...转载 2018-11-23 16:50:28 · 449 阅读 · 0 评论 -
通过curl得到http各阶段的响应时间
转自:https://blog.csdn.net/hqzxsc2006/article/details/50547684curl的部分时间等变量注释:url_effective The URL that was fetched last. This is most meaningful if you've told curl to follow location: headers.fil...转载 2019-01-15 11:16:35 · 957 阅读 · 0 评论 -
创建守护进程步骤与setsid() -- linux deamon进程
原创:http://www.cnblogs.com/mickole/p/3188321.html一,守护进程概述Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程...转载 2019-02-03 11:03:57 · 168 阅读 · 0 评论 -
解决Ubuntu包损坏问题:dpkg: error processing package
Ubuntu安装应用时报错:这里写图片描述可以看出来是 initramfs-tools包有问题,依赖或是其他的问题,导致apt配置不成功。解决方法:编辑dpkg status 文件:sudo vim /var/lib/dpkg/status找到包 initramfs-tools 那一段,删掉!!!(整段)然后再运行sudo apt-get install -f然后再继续...转载 2019-07-22 15:49:31 · 1902 阅读 · 0 评论 -
Ubuntu 16.04安装Java JDK8
Java JDK在linux系统有两个版本。一个开源版本Openjdk。还有一个oracle官方版本jdk,oracle JDK既可以通过添加ppa源命令行安装,也可以去官网下载jdk压缩包安装。下面分别记录一下这三种安装方式的步骤。安装openjdk1、更新软件包列表:sudo apt-get update2、安装openjdk-8-jdk:sudo apt-g...转载 2019-07-23 09:56:36 · 162 阅读 · 0 评论 -
BGP修改NEXT_HOP下一跳属性值的几种方法
转自:http://network.51cto.com/art/201312/425366.htm本博文将为您详细介绍BGP修改NEXT_HOP下一跳属性值的几种方法,包括通过next-hop-self变更next-hop属性,通过route-map修改BGP路由NEXT_HOP属性值等。1.通过next-hop-self可以变更next-hop属性转载 2017-02-16 11:35:07 · 5053 阅读 · 0 评论 -
网络编程之TCP/UDP及其流程比较
TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式TCP保证数据正确性,UDP可能丢包TCP保证数据顺序,UDP不保证具体编程时的区别 socket()的参数不同 UDP Server不需要调用listen和accept UDP收发数据用sendto/recvfrom函数 TCP:地址信转载 2014-08-11 18:32:28 · 516 阅读 · 0 评论 -
基于TCP协议的服务器/客户端程序
前面我们初步学习了数据流套接字编程的一些基础知识,下面我们来学习如何具体实现这一网络通信流程。首先我们看一下使用TCP协议进行网络通信的程序基本模型,如图7-3所示。服务器首先进行初始化操作:调用函数socket创建一个套接字,函数bind将这个套接字与服务器的公认地址绑定在一起,函数listen将这个套接字换成倾听套接字,然后调用函数accept来等待客户机的请求。过了一段时间后,客户机启动转载 2014-08-11 18:18:07 · 821 阅读 · 0 评论 -
简单分析一下socket中的bind
在最开始接触bind的时候,只是在写基于tcp的server端的时候,知道在listen之前需要先bind一下,用来确保socket能在某个固定的端口监听。而bind的时候,函数参数中的端口填自己将要绑定的端口就行;而IP地址,需要填本机的IP,但是也可以用一个宏INADDR_ANY代替,用这个宏就可以不用查找本机的IP,它就可以代替本机的IP。当时只觉得这个INADDR_ANY比较神奇,但是由于转载 2014-08-12 10:02:48 · 478 阅读 · 0 评论 -
UNIX Domain Socket IPC (sockaddr_un )
socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另转载 2014-08-12 16:56:49 · 429 阅读 · 0 评论 -
UNIX domain ( UNIX 预协议 ) 实例
一般在我们自己的主机上通信的时候,前面也讲到过可以使用pipe,fifo,msg,共享内存之类,如果你想使用套接字的话,当然TCP/IP的套接字也是可以的,只要指定server的IP = 127.0.0.1 或者你的当前主机的实际接入网络的IP也是可以的!但是相对与此处的UNIX domain来说,在效率上可能会低一点点、、、UNIX domain的实际操作和前面的TCP/IP中的实际的操作的转载 2014-08-13 11:06:08 · 556 阅读 · 0 评论 -
非阻塞connect()和accept()
非阻塞connect()和accept() 一.select()函数 select()函数准备好读的条件: 1>.套接口有数据可读 2>.该连接的读这一半关闭(也就是接收了FIN的TCP连接)。对这样的套接口进行读操作将不阻塞并返回0(也就是返回EOF)。 3>.该套接口是一个侦听套接口且已完成的连接数不为0。 4>.其上有一个套接口转载 2014-08-13 14:56:45 · 607 阅读 · 0 评论 -
路由器,交换机和猫的区别
本文参考自:http://www.pc6.com/infoview/Article_62896.htmlhttp://zhidao.baidu.com/link?url=QhQLS5ze1yYBpcbEz6uKWEPJD-nQxqnGYwa7IWz0hDNaD9pDqdlE0-U_jvMmRstkW0ASAFyaLTJcCjN7g53EQK 大家用电脑的时候就能听说,交换机和路由转载 2016-01-19 16:48:14 · 1564 阅读 · 0 评论 -
CM和CMTS是怎么上网的
Cable Modem的技术实现一般是从87 MHz-860MHz电视频道(欧洲标准,美洲标准为50MHz-860MHz)中分离出一条6MHz或8MHz的信道用于下行传送数据。通常下行数据采用64QAM(正交调幅)调制方式或256QAM调制方式。上行数据一般通过5 MHz-65 MHz之间的一段频谱进行传送,信道宽度一般为:6.4MHz,3.2MHz,1.6MHz,为了有效抑制上行噪音积累,一转载 2016-01-19 17:55:26 · 1414 阅读 · 0 评论 -
Linux下的多进程编程初步(转载)
声明:为尊重原创特声明,本文转自 http://blog.csdn.net/wallwind/article/details/6899330 最近在学习linux环境高级编程,多进程编程算是编程中的最重要的一个部分了,本文让我学习和明白了很多,所以转载过来。让更多想多线程编程的人学习。只有顶到首页才能让更多的人学习。文章摘要: 多线程程序设计的概念早在六十转载 2016-01-11 10:59:11 · 356 阅读 · 0 评论 -
socket阻塞与非阻塞 同步与异步 select poll epoll
socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等转载 2016-02-18 12:43:54 · 308 阅读 · 0 评论 -
RDMA编程技术
1 什么是RDMA1.1 传统意义上的DMA---直接内存访问(DMA)方式,是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行。DMA工作时,由DMA控制器向内存发出地址和控制信号;进行地址修改;对传送字的个数计数;并且以中断方式向CPU报告传送操作的结束。DMA方式一般用于高速转载 2016-08-01 22:14:32 · 3362 阅读 · 1 评论 -
BGP Next-hop-self
【实验目的】通过配置next-hop-self命令,确保R3与R5之间的155.1.37.0/24 与155.1.5.0/24 网络能够互相访问【实验拓扑】 【实验基本配置】R1:interface FastEthernet0/0ip address 155.1.146.1 255.255.255.0!interface Seri转载 2017-02-16 11:29:11 · 2787 阅读 · 0 评论 -
基于UDP协议的服务器/客户端程序
UDP网络程序采用的通信模型与TCP网络程序模型有很大的不同,具体见图7-4所示。UDP服务器首先进行初始化操作:调用函数socket创建一个数据报类型的套接字,函数bind将这个套接字与服务器的公认地址绑定在一起。然后调用函数recvfrom接收UDP客户机的数据报。UDP客户机首先调用函数socket创建一个数据报套接字,然后调用函数sendto向服务器发送数据报。在结束通信后,客户机转载 2014-08-11 18:18:47 · 1322 阅读 · 0 评论