java技巧-传输协议

上传人:枫** 文档编号:512834340 上传时间:2023-05-02 格式:DOC 页数:41 大小:1.25MB
返回 下载 相关 举报
java技巧-传输协议_第1页
第1页 / 共41页
java技巧-传输协议_第2页
第2页 / 共41页
java技巧-传输协议_第3页
第3页 / 共41页
java技巧-传输协议_第4页
第4页 / 共41页
java技巧-传输协议_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《java技巧-传输协议》由会员分享,可在线阅读,更多相关《java技巧-传输协议(41页珍藏版)》请在金锄头文库上搜索。

1、传输协议TCP/IP三次握手,建立连接四次挥手,断开连接层次结构TCP/IPOSI应用层应用层表示层会话层主机到主机层(TCP)(又称传输层)传输层网络层(IP)(又称互联层)网络层网络接口层(又称链路层)数据链路层物理层TCP三次握手所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。 第一次握手:客户端发送一个TCP的SYN标志位置1的包指明客户打

2、算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。 第二次握手:服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。 第三次握手.客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1SYN攻击 在三次握手过程中,服务器发送SYN-ACK之后,收到客户端的ACK之前的TCP连接称为半连接(half-open connect).

3、此时服务器处于Syn_RECV状态.当收到ACK后,服务器转入ESTABLISHED状态. Syn攻击就是 攻击客户端 在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直 至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。 Syn攻击是一个典型的DDOS攻击。检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击.在Linux下可以如下命令检测是否被Syn攻击n

4、etstat -n -p TCP | grep SYN_RECV一般较新的TCP/IP协议栈都对这一过程进行修正来防范Syn攻击,修改tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等.但是不能完全防范syn攻击。TCP 四次挥手TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。参见wireshark抓包,实测的抓包结果并没有严格按挥手时序。我估计是时间间隔太短造成。UDP

5、TCP/IP与UDP区别TCP/IP协议时面向连接,UDP面向非连接TCP/IP编程ServerSocket,SocketHttp详解HTTP协议详解之请求篇 http请求由三部分组成,分别是:请求行、消息报头、请求正文1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。请求方法

6、(所有方法全为大写)有多种,各个方法的解释如下:GET 请求获取Request-URI所标识的资源POST 在Request-URI所标识的资源后附加新的数据HEAD 请求获取由Request-URI所标识的资源的响应消息报头PUT 请求服务器存储一个资源,并用Request-URI作为其标识DELETE 请求服务器删除Request-URI所标识的资源TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断CONNECT 保留将来使用OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求应用举例:GET方法:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向

7、服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)POST方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。eg:POST /reg.jsp HTTP/ (CRLF)Accept:image/gif,image/x-xbit,. (CRLF).HOST: (CRLF)Content-Length:22 (CRLF)Connection:Keep-Alive (CRLF)Cache-Control:no-cache (CRLF)(CRLF) /该CRLF表示消息报头已经结束,在此之前为消息报头user=jeffrey&pwd=1234 /此行以下为提交的

8、数据HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来 说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识 的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。2、请求报头后述3、请求正文(略) HTTP详解之响应篇 在接收和解释请求消息后,服务器返回一个HTTP响应消息。HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文1、状态行格式如下:HTTP-Version Status-Code Reason-Phrase CRLF其中,HTTP-V

9、ersion表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息-表示请求已接收,继续处理2xx:成功-表示请求已被成功接收、理解、接受3xx:重定向-要完成请求必须进行更进一步的操作4xx:客户端错误-请求有语法错误或请求无法实现5xx:服务器端错误-服务器未能实现合法的请求常见状态代码、状态描述、说明:200 OK /客户端请求成功400 Bad Request /客户端请求有语法错误,不能被服务器所理解401 Unautho

10、rized /请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden /服务器收到请求,但是拒绝提供服务404 Not Found /请求资源不存在,eg:输入了错误的URL500 Internal Server Error /服务器发生不可预期的错误503 Server Unavailable /服务器当前不能处理客户端的请求,一段时间后可能恢复正常eg:HTTP/1.1 200 OK (CRLF)2、响应报头后述3、响应正文就是服务器返回的资源的内容 HTTP详解之消息报头篇 HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。

11、请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。1、普通报头在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。eg:Cache-Control 用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制),HTTP1.

12、0使用的类似的报头域为Pragma。请求时的缓存指令包括:no-cache(用于指示请求或响应消息不能缓存)、no-store、max-age、max-stale、min-fresh、only-if-cached;响应时的缓存指令包括:public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age、s-maxage.eg:为了指示IE浏览器(客户端)不要缓存页面,服务器端的JSP程序可以编写如下:response.sehHeader(Cache-Control,no-cache);/r

13、esponse.setHeader(Pragma,no-cache);作用相当于上述代码,通常两者/合用这句代码将在发送的响应消息中设置普通报头域:Cache-Control:no-cacheDate普通报头域表示消息产生的日期和时间Connection普通报头域允许发送指定连接的选项。例如指定连接是连续,或者指定“close”选项,通知服务器,在响应完成后,关闭连接2、请求报头请求报头举例:GET /form.html HTTP/1.1 (CRLF)Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flas

14、h,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/* (CRLF)Accept-Language:zh-cn (CRLF)Accept-Encoding:gzip,deflate (CRLF)If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF)If-None-Match:W/80b1a4c018f3c41:8317 (CRLF)User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.

15、0) (CRLF)Host: (CRLF)Connection:Keep-Alive (CRLF)(CRLF)3、响应报头响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。常用的响应报头LocationLocation响应报头域用于重定向接受者到一个新的位置。Location响应报头域常用在更换域名的时候。ServerServer响应报头域包含了服务器用来处理请求的软件信息。与User-Agent请求报头域是相对应的。下面是Server响应报头域的一个例子:Server:Apache-Coyote/1.14、实体报头请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文(eg:有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号