网络安全
doubel_山里娃
一个程序员的经历
展开
-
TCP协议详解(理论篇
TCP协议详解(理论篇)与UDP不同的是,TCP提供了一种面向连接的、可靠的字节流服务。面向连接比较好理解,就是连接双方在通信前需要预先建立一条连接,这犹如实际生活中的打电话。助于可靠性,TCP协议中涉及了诸多规则来保障通信链路的可靠性,总结起来,主要有以下几点:(1)应用数据分割成TCP认为最适合发送的数据块。这部分是通过“MSS”(最大数据包长度)选项来控制的,通常这种机制也被称为一种协商机制,MSS规定了TCP传往另一端的最大数据块的长度。值得注意的是,MSS只能出现在SYN报文段中,若一方不接原创 2020-11-21 08:35:49 · 492 阅读 · 0 评论 -
TCP为什么要三次握手,不是两次四次?
第三次握手——革命斗争中的通信故事在革命战争影片中,经常会看到英勇的解放军战士背着步话机在喊“长江长江,我是黄河,听到请回答。”很明显,这是呼号为黄河的一方想找呼号为长江的另一方说事,为了保证影片的节奏,导演往往把后面的联络过程省略了,其实后面还有两步,长江听到黄河的呼叫后要回答“黄河黄河,我是长江,我听到了你,请回答。”这叫做第二次握手。黄河听到长江的呼叫后还要回答“长江长江,我是黄河,我听到了你,现在请你收报”,这是第三次握手,三次握手成功后,才能在电台里传送工作报文。为什么必须三次握手后才能工作呢?原创 2020-11-21 08:36:00 · 362 阅读 · 1 评论 -
TCP标志位详解及tcp拦截配置
http://blog.sina.com.cn/s/blog_6b6bf3830101ag0r.htmlTCP标志位URG:此标志表示TCP包的紧急指针域(后面马上就要说到)有效,用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据;ACK:此标志表示应答域有效,就是说前面所说的TCP应答号将会包含在TCP数据包中;有两个取值:0和1,为1的时候表示应答域有效,反之为0;PSH:这个标志位表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即传送给应用程序,而不是在缓冲区中原创 2020-11-21 08:36:10 · 1581 阅读 · 1 评论 -
TCP_IP,http,socket,长连接,短连接
概要:之前对这几个概念有点糊涂,查阅了些资料,稍微概括下他们的区别吧。如有错误,请拍~~~先看图:TCP/IP是什么?TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。Socket是什么呢?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,一组接口,把复杂的TCP/IP协议族隐藏在Soc原创 2020-11-21 08:36:19 · 170 阅读 · 0 评论 -
TCP 滑动窗口的简介
TCP的滑动窗口主要有两个作用,一是提供TCP的可靠性,二是提供TCP的流控特性。同时滑动窗口机制还体现了TCP面向字节流的设计思路。TCP 段中窗口的相关字段。TCP的Window是一个16bit位字段,它代表的是窗口的字节容量,也就是TCP的标准窗口最大为2^16-1=65535个字节。另外在TCP的选项字段中还包含了一个TCP窗口扩大因子,option-kind为3,option-length为3个字节,option-data取值范围0-14。窗口扩大因子用来扩大TCP窗口,可把原来16bit的原创 2020-11-21 08:36:30 · 1433 阅读 · 0 评论 -
socket读写缓冲区.
关于socket的发送缓冲区网上有诸多的讨论,这里个人小结一下,希望对以后有些帮助。首先,看下面一段代码,//设定socket参数#define dfUdpRcvCacheSize 2561024 //256//接收缓冲区大小(字节)int optval,optlen = sizeof(int);optval=dfUdpRcvCacheSize; //设置读缓冲区err=setsockopt(iSock,SOL_SOCKET,SO_RCVBUF,(char)&optval,optlen)原创 2020-11-21 08:36:40 · 1016 阅读 · 0 评论 -
HTTP协议与操作系统接口
协议如何通信现代网络操作系统,系统向程序员提供了基于Socket的TCP/IP接口,在操作系统的核心中实现了TCP/IP协议的几个基本层次为:________;Socket接口属于操作系统提供用户接口的________接口。 【分析】传输层协议、网络层协议和物理接口层是由操作系统内核来实现的。而用户并不能感觉到操作系统的工作,用户能知道的是应用程序。而应用程序依靠编程界面与内核联系,各种应用程序都是通过编程界面来开发的。 编程界面有两种形式: 由内核直接提供系统调用; 以库函数方式提供的各原创 2020-11-21 08:36:51 · 683 阅读 · 0 评论 -
运输层和应用层
运输层协议是用代码实现的服务组件,可以传递数据包,常说的三次握手,准确的说就是指tcp建立连接的三次请求、确认握手,只有tcp建立了连接,上面的应用层协议才可以依靠他进行数据传递。另外,tcp处于连接或者断开状态,都是依据tcp数据包头部的连接和断开状态位来确定的。例如,一个应用进程想建立TCP连接,例如浏览器,他就会调用OS的TCP接口,把头部的连接状态位改变,然后发送请求,如果他想断开连接,那么就可以吧TCP的报文头部断开位进行重置,这样就向服务器发送了断开请求的连接。从这里可以发现,浏览器是可以控..原创 2020-11-23 08:39:03 · 1021 阅读 · 0 评论 -
同一端口如何区分不同的Socket
为了区分不同应用进程间的网络通信和连接,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP 或 UDP)和使用的端口号。Socket的原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。accept()产生的Socket端口号是多少?要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,So原创 2020-11-23 08:39:10 · 1309 阅读 · 0 评论 -
计算机网络知识汇总
TCP为什么要三次握手,不是两次四次?.note原文地址:http://www.cnblogs.com/leetieniu2014/p/5843709.html因特网因特网是当今世界上最大的网络, 是”网络的网络”. 即因特网是所有网络互连起来的一个巨型网络.因特网的组成 :边缘部分 : 主机核心部分 : 大量网络和连接这些网络的路由器(此路由器不是我们家用的路由器)以太网以太网是现在最常用的局域网通信协议, 以太网上传输的是MAC帧. 由于以太网同一时间只允许一台计算机发送数据, 所以必须原创 2020-11-23 08:39:20 · 478 阅读 · 0 评论 -
缓冲区大小及限制
TCP输出下图展示了应用进程写数据到TCP套接口的过程。每一个TCP套接口有一个发送缓冲区,我们可以用SO_SNDBUF套接口选项来改变这个缓冲区的大小。当应用程序调用write时,内核从应用程序进程的缓冲区中拷贝所有数据到套接口的发送缓冲区。如果套接口的发送缓冲区容不下应用程序的所有数据(或是应用程序的缓冲区大于套接口发送缓冲区,或是套接口发送缓冲区还有其他数据),应用进程将被挂起(睡眠)。这里假设套接口是阻塞的,它是通常的缺省设置(还有非阻塞的套接口)。内核将不从write系统调用返回,直到应用程原创 2020-11-23 08:39:28 · 3320 阅读 · 0 评论