![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
TCP/IP
文章平均质量分 74
Citronnelle2
这个作者很懒,什么都没留下…
展开
-
高性能网络编程1----accept建立连接
最近在部门内做了个高性能网络编程的培训,近日整理了下PPT,欲写成一系列文章从应用角度谈谈它。编写服务器时,许多程序员习惯于使用高层次的组件、中间件(例如OO(面向对象)层层封装过的开源组件),相比于服务器的运行效率而言,他们更关注程序开发的效率,追求更快的完成项目功能点、希望应用代码完全不关心通讯细节。他们更喜欢在OO世界里,去实现某个接口、实现这个组件预定义的各种模式、设置组件参数来达转载 2015-08-10 20:40:27 · 323 阅读 · 0 评论 -
IO基础入门之I/O多路复用技术
在I/O编程过程中,当需要同时处理多个客户端接入请求时,可以利用多线程或者I/O多路复用技术进行处理。I/O多路复用技术通过把多个I/O的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。与传统的多线程/多进程模型比,I/O多路复用的最大优势是系统开销小,系统不需要创建新的额外进程或者线程,也不需要维护这些进程和线程的运行,降底了系统的维护工作量,节省了转载 2015-08-10 20:20:14 · 328 阅读 · 0 评论 -
I/O多路复用详解(三)
4、epoll 在linux的网络编程中,很长的一段时间都在使用select来做事件触发。然而select逐渐暴露出了一些缺陷,使得linux不得不在新的内核中寻找出替代方案,那就是epoll。其实,epoll与select原理类似,只不过,epoll作出了一些重大改进,即: a、当它们所监听的集合中有状态发生改变时,select需要循环检查整个集合,才能确定那个转载 2015-08-10 20:15:09 · 298 阅读 · 0 评论 -
I/O多路复用详解(二)
2、pselect函数 pselect函数是由POSIX发明的,如今许多Unix变种都支持它。 #include #include #include int pselect(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timespec *timeou转载 2015-08-10 20:06:36 · 212 阅读 · 0 评论 -
I/O多路复用详解(一)
要想完全理解I/O多路复用,需先要了解I/O模型:一、五种I/O模型1、阻塞I/O模型 最流行的I/O模型是阻塞I/O模型,缺省情形下,所有套接口都是阻塞的。我们以数据报套接口为例来讲解此模型(我们使用UDP而不是TCP作为例子的原因在于就UDP而言,数据准备好读取的概念比较简单:要么整个数据报已经收到,要么还没有。然而对于TCP来说,诸如套接口低潮标记等额外变量开始活动,导致转载 2015-08-10 20:01:31 · 434 阅读 · 0 评论 -
常见网络攻击原理
常见网络攻击原理 1.1 TCP SYN拒绝服务攻击 一般情况下,一个TCP连接的建立需要经过三次握手的过程,即: 1、 建立发起者向目标计算机发送一个TCP SYN报文; 2、目标计算机收到这个SYN报文后,在内存中创建TCP连接控制块(TCB),然后向发起者回送一个TCP ACK报文,等待发起者的回应; 3、 发起者收到TCP ACK报文后,再回转载 2015-07-14 16:15:36 · 587 阅读 · 0 评论 -
BGP中IBGP和EBGP的区别和联系
我们知道,在自治系统内部使用IGP路由协议;而在不同自治系统之间使用BGP路由协议(严格来讲,BGP不是路由协议)。BGP产生的原因是为了在不同自治系统(AS)之间进行路由转发,而其中又提出了EBGP和IBGP两种。EBGP用于在不同自治系统之间,但IBGP,书上说它是应用于自治系统内部,可是在自治系统内部我们是使用IGP。这就和"BGP是应用于不同自治系统之间"产生矛盾,那么IBGP存在的意义,转载 2015-05-01 16:47:08 · 57231 阅读 · 0 评论 -
详解BGP-4
本文转自http://cunshen.cnblogs.com/archive/2006/02/11/149553.html,作者:cunshen ,转载至此仅为方便学习参考。BGP 为什么使用BGP BGP是可靠的,基于TCP(Port Numer 179)进行建立和维护连接,并且具有并使用TCP的滑动窗口的机制来更新路由表,可以支持一次性的大量路由条目转载 2015-05-01 17:09:48 · 6783 阅读 · 0 评论 -
IP选路详解
(一)概述 路由算法是用于获取路由表中的路由项目。它是路由选择协议的核心。为了说明路由表的组成,先看一个主机路由表: 1: 内核 IP 路由表 2: Destination Gateway Genmask Flags MSS Window irtt Iface 3: 10.0.2.0转载 2015-05-01 13:41:04 · 1929 阅读 · 0 评论 -
多路复用/多路分解
套接字寻址系统使得TCP和UDP能够执行传输层另一个重要任务:多路复用和多路分解。多路复用是指把多个来源的数据导向一个输出,而多路分解是把从一个来源接收的数据发送到多个输出。多路传输/多路分解让TCP/IP协议栈较低层的协议不必关心哪个程序在传输数据。与应用程序相关的操作都由传输层完成了,数据通过一个与应用程序无关的管道在传输层与网际层之间传递。多路复用和多路分解的关键就在转载 2015-08-10 20:22:00 · 6070 阅读 · 0 评论 -
常见端口漏洞信息解析
在上网的时候,我们经常会看到“端口”这个词,也会经常用到端口号,比如在FTP地址后面增加的“21”,21就表示端口号http://www.woaidiannao.com。那么端口到底是什么意思呢?怎样查看端口号呢?一个端口是否成为网络恶意攻击的大门呢?,我们应该如何面对形形色色的端口呢?下面就将介绍这方面的内容,以供大家参考。 21端口:21端口主要用于FTP(File Transfe转载 2015-08-20 13:59:29 · 4817 阅读 · 0 评论 -
高性能网络编程2----TCP消息的发送
在上一篇中,我们已经建立好的TCP连接,对应着操作系统分配的1个套接字。操作TCP协议发送数据时,面对的是数据流。通常调用诸如send或者write方法来发送数据到另一台主机,那么,调用这样的方法时,在操作系统内核中发生了什么事情呢?我们带着以下3个问题来细细分析:发送方法成功返回时,能保证TCP另一端的主机接收到吗?能保证数据已经发送到网络上了吗?套接字为阻塞或者非阻塞时,发送方法做的事情有何不转载 2015-08-10 20:43:07 · 321 阅读 · 0 评论 -
高性能网络编程3----TCP消息的接收
这篇文章将试图说明应用程序如何接收网络上发送过来的TCP消息流,由于篇幅所限,暂时忽略ACK报文的回复和接收窗口的滑动。为了快速掌握本文所要表达的思想,我们可以带着以下问题阅读:1、应用程序调用read、recv等方法时,socket套接字可以设置为阻塞或者非阻塞,这两种方式是如何工作的?2、若socket为默认的阻塞套接字,此时recv方法传入的len参数,是表示必须超时转载 2015-08-10 20:45:00 · 258 阅读 · 0 评论 -
高性能网络编程4--TCP连接的关闭
TCP连接的关闭有两个方法close和shutdown,这篇文章将尽量精简的说明它们分别做了些什么。为方便阅读,我们可以带着以下5个问题来阅读本文:1、当socket被多进程或者多线程共享时,关闭连接时有何区别?2、关连接时,若连接上有来自对端的还未处理的消息,会怎么处理?3、关连接时,若连接上有本进程待发送却未来得及发送出的消息,又会怎么处理?4、so_l转载 2015-08-10 20:46:12 · 257 阅读 · 0 评论 -
高性能网络编程5--IO复用与并发编程
对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接。同时处理多个并行发生事件的连接,简称为并发;同时处理万计、十万计的连接,则是高并发。服务器的并发编程所追求的就是处理的并发连接数目无限大,同时维持着高效率使用CPU等资源,直至物理资源首先耗尽。并转载 2015-08-10 20:47:15 · 250 阅读 · 0 评论 -
并发编程之一:多进程
多进程编程的主要内容包括进程控制和进程间通信:一、Linux下进程控制 在传统的Unix环境下,有两个基本的操作用于创建和修改进程: fork():用来创建一个新的进程,该进程几乎是当前进程的一个完全拷贝; exec函数族:用来启动外部程序以取代当前的进程(由于此类函数并不是只有一个,而是六个,所以统称exec函数族)。转载 2015-08-10 20:54:06 · 453 阅读 · 0 评论 -
并发网络编程学习之路(二):多进程与进程池(续)
转自:http://book.51cto.com/art/200903/114895.htm3.3共享内存3.3.1共享内存的概念 在系统内核为一个进程分配内存地址进,通过分布机制可以让一个进程的物理地址不连续,同时也可以让一段内存同时分配给不同的进程。共享机制就是通过该原理来实现的,共享内存机制只是提供数据的传送,如何控制服务器端和客户端的读写操作互斥,这就需要一些转载 2015-08-10 20:57:10 · 418 阅读 · 0 评论 -
并发网络编程学习之路(三):多线程与进线池
深入研究线程池一.什么是线程池?线程池就是以一个或多个线程[循环执行]多个应用逻辑的线程集合.注意这里用了线程集合的概念是我生造的,目的是为了区分执行一批应用逻辑的多个线程和线程组的区别.关于线程组的概念请参阅基础部分.一般而言,线程池有以下几个部分:1.完成主要任务的一个或多个线程.2.用于调度管理的管理线程.3.要求执行的任务队列.那么如果一个线转载 2015-08-10 21:04:43 · 307 阅读 · 0 评论 -
traceroute和tracert用法详解
一、什么是Traceroute? Internet,即国际互联网,是目前世界上最大的计算机网络,更确切地说是网络的网络。它由遍布全球的几万局域网和数百万台计算机组成,并通过用于异构网络的TCP/IP协议进行网间通信。互联网中,信息的传送是通过网中许多段的传输介质和设备(路由器,交换机,服务器,网关等等)从一端到达另一端。每一个连接在Internet上的设备,转载 2015-04-29 18:24:05 · 32329 阅读 · 0 评论 -
Ping of Death 攻击 和 ICMP 风暴
ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递骑着重要的作用。在网络中经常会使用到ICMP协议,只不过察觉不到而已。比如经原创 2015-08-20 14:38:28 · 10715 阅读 · 0 评论 -
大型网站的HTTPS实践(一)---HTTPS协议和原理
本文转自:http://blog.csdn.net/luocn99/article/details/45460673,作者:musiccoder1前言百度已经于近日上线了全站HTTPS的安全搜索,默认会将HTTP请求跳转成HTTPS。本文重点介绍HTTPS协议,并简单介绍部署全站HTTPS的意义。 本文最早发表于百度运维部官方博客2 HTTPS协议概述H转载 2015-05-04 21:06:49 · 755 阅读 · 0 评论 -
大型网站的HTTPS实践(二)-- HTTPS对性能的影响
本文转自:http://blog.csdn.net/luocn99/article/details/45462281,作者:musiccoder1 前言HTTPS在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS也会降低用户访问速度,增加网站服务器的计算资源消耗。 本文主要介绍https对用户体验的影响。 本文最早发表于百度运维部官方博客转载 2015-05-04 21:08:42 · 332 阅读 · 0 评论 -
浅析ICMP协议
ICMP(Internet Control Message Protocol)是Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。例如我们都知道IP 协议是不可靠协议,不能保证 IP 数据报能够成功的到达目的主机,无法进行差错控制,而 IC原创 2015-04-29 10:16:20 · 1915 阅读 · 0 评论 -
ping过程详解
Ping过程详解 Ping命令的主要作用的是检查网络的连通情况和检测网络的速度。相信大家都用过Ping命令,下面主要介绍一下Ping命令是怎样一个执行过程。 主要的Ping有两种情况,一种是同一网段,一种是跨网段的。 首先看一个拓扑图:首先,如果主机A要Ping主机B,那么主机A就要封装二层报文,他会先检查自己的MAC地址,如果没转载 2015-04-29 16:05:10 · 1270 阅读 · 0 评论 -
ARP协议详解
很多人都知道ARP是地址解析协议,但是其究竟如何工作,我们又该如何使用它呢?许多人就会一知半解了吧,下面我从以下几个方面来详细解析一下ARP协议:(一)ARP的定义和工作原理(二)帧格式(三)如何使用ARP(四)ARP问题情况的分析(五)ARP高速缓存(六)ARP代理(七)ARP攻击和使用原理(一)ARP的定义和工作原理对于以太网,数据链路层上是根据原创 2015-04-26 14:53:05 · 1505 阅读 · 0 评论 -
TCPIP详解学习笔记-UDP协议
1.UDP简要介绍UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议。 下面的图是一个UDP的检验和所需要用到的所有信息,包括三个部分:1.UDP伪首部2.UDP首部3.UDP的数据部分转载 2015-04-20 10:55:09 · 1107 阅读 · 0 评论 -
详解路由交换中的帧封装机制
本文转自http://bbs.51cto.com/thread-621550-1.html,转载至此仅为方便学习参考。交换功能是指路由器在一个接口接收数据包并将其从另一个接口转发出去的过程。交换功能的重要责任是将数据包封装成适用于传出数据链路的正确数据帧类型。对于从一个网络传入,以另一个网络为目的地的数据包,路由器会进行哪些处理?路由器主要执行以下三个步骤:1. 通过删除第 2转载 2015-04-24 13:15:55 · 3528 阅读 · 0 评论 -
DNS消息格式
本文转自http://www.cnblogs.com/cobbliu/archive/2013/04/02/2996333.html,转载至此仅为方便学习参考。一、简介空谈误国,要让一大堆抽象的DNS概念落地,还是需要了解DNS消息格式的,本文会尽量详细地介绍DNS消息格式的每一个字段。也可以移步rfc1035了解。二、概览DNS消息主要由五部分组成,如下图转载 2015-04-19 15:49:02 · 352 阅读 · 0 评论 -
互联网协议入门(二)
本文转自http://www.cricode.com/2537.html,转载至此仅为方便学习参考。上一篇文章分析了互联网的总体构思,从下至上,每一层协议的设计思想。这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。========================================================转载 2015-04-19 13:08:37 · 561 阅读 · 0 评论 -
DNS服务器能遭受到的DDNS攻击类型
本文转自http://www.cnblogs.com/cobbliu/p/3383135.html,转载至此仅为方便学习参考。 每个网站都有可能会遭受到攻击,现在的互联网服务器遭受的最多的是DDOS攻击,本文总结了一些DNS服务器会遇到的DDOS攻击类型,以及相应的预防措施。 [1]的作者将DDOS的攻击分为三种类型:大数据洪水攻击(Volume Based At转载 2015-04-19 16:06:29 · 1286 阅读 · 0 评论 -
DNS协议浅析
我们都知道,在上网时需要在浏览器中输入相应的ip地址才能访问到需要的页面。但是ip地址由32位的二进制来表示,很显然,这很难记。但是用户更愿意记www.baidu.com这样直观的名称。因此这就需要DNS(域名服务器)来进行ip与名称的映射。首先说一下,采用DNS有两个好处:一是之前说的,用户只需记住直观的名称而不用去记一堆32bit的数字。二是,当一台服务器要更换ip地址时,只要改变相应的映射表原创 2015-04-19 14:43:21 · 650 阅读 · 0 评论 -
CIDR和NAT协议浅析
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! IPv4由于最初的设计原因,长度只有32位,所以只提供了大约40亿个地址。这造成了IPv4地址的耗尽危机。随后,IPv6被设计出来,并可以提供足够多的IP地址。但是IPv4与IPv6并不兼容,IPv4向IPv6的迁移并不容易。一些技术,比如说这里要说的CIDR和NAT,相继转载 2015-05-02 13:19:11 · 670 阅读 · 0 评论 -
Socket编程实现广播和多播
本文转自http://wangyali90516.blog.163.com/blog/static/1172051012011793131861/,转载至此仅为方便学习参考广播广播是指在一个局域网中向所有的网上节点发送信息。这是UDP连接的一种广播有一个广播组,即只有一个广播组内的节点才能收到发往这个广播组的信息。什么决定了一个广播组呢,就是端口号,局域网内一个节点,如果设转载 2015-05-02 15:29:11 · 3137 阅读 · 0 评论 -
OSPF协议详解
本文转自http://www.qingsword.com/qing/596.html,作者:晴仞。转载至此仅为方便学习参考。这篇文章主要介绍链路状态路由协议OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证等。_________________________________________文章目录[*1*].链路状态路由协转载 2015-05-02 13:28:04 · 18801 阅读 · 3 评论 -
SMTP协议分析
本文转自http://blog.csdn.net/bripengandre/article/details/2191048,作者:彭令鹏,转载至此仅为方便学习参考。SMTP协议分析第1章. SMTP概述1.1. SMTP在邮件通信中的位置SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用转载 2015-05-03 16:52:08 · 1590 阅读 · 0 评论 -
POP3协议分析
本文转自:http://blog.csdn.net/bripengandre/article/details/2192111,作者彭令鹏,转载至此仅为方便学习参考。POP3协议分析第1章. POP3概述POP3全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来邮件服务器取得邮件。POP3采用的也是C/S通信模型,对应的RFC转载 2015-05-03 16:56:51 · 280 阅读 · 0 评论 -
TCP/IP详解学习笔记 -- TCP的流量控制和拥塞控制
TCP的流量控制1.概述 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。 如图所示,说明了利用可变窗口大小进行流量控制。设主机A向主机B发送数据。双方确定的窗口值是400.再设每一个报文段为10转载 2015-05-03 14:40:21 · 407 阅读 · 0 评论 -
TCP/IP详解学习 -- TCP连接的建立与终止
1.TCP连接的建立 设主机B运行一个服务器进程,它先发出一个被动打开命令,告诉它的TCP要准备接收客户进程的连续请求,然后服务进程就处于听的状态。不断检测是否有客户进程发起连续请求,如有,作出响应。设客户进程运行在主机A中,他先向自己的TCP发出主动打开的命令,表明要向某个IP地址的某个端口建立运输连接,过程如下: 1)主机A的TCP向主机B的TCP发出连接转载 2015-05-03 13:06:05 · 394 阅读 · 0 评论 -
POP3、SMTP和IMAP之间的区别和联系
原文链接:http://edm.ishang.net/faq/detail/the-imap-protocol.htmlPOP3、SMTP和IMAP之间的区别和联系POP3POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,PO转载 2015-05-03 17:01:12 · 497 阅读 · 0 评论 -
TCP/IP详解学习笔记--TCP(传输控制协议)
1.概述 TCP提供了一种可靠的面向连接的字节流运输层服务。 TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认,对失序的数据重新排序,丢弃重复数据,TCP提供端到端的流量控制,并计算和验证一个强制性的端到端的检验和。 许多流行的应用程序如:Telnet, Rlogin, FTP,SMTP 都使用TCP。TCP的主要特点:转载 2015-05-03 12:40:09 · 719 阅读 · 0 评论