TCP、UDP和HTTP

先来一个讲TCP、UDP和HTTP关系的

1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。

在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

在传输层中有TCP协议与UDP协议。

在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。

因此,HTTP本身就是一个协议。是从Webserver传输超文本到本地浏览器的传送协议。

2、HTTP协议是建立在请求/响应模型上的。首先由客户建立一条与server的TCP链接,并发送一个请求到server。请求中包括请求方法、URI、协议版本号以及相关的MIME样式的消息。

server响应一个状态行,包括消息的协议版本号、一个成功和失败码以及相关的MIME式样的消息。

HTTP/1.0为每一次HTTP的请求/响应建立一条新的TCP链接。因此一个包括HTML内容和图片的页面将须要建立多次的短期的TCP链接。一次TCP链接的建立将须要3次握手。

另外,为了获得适当的传输速度。则须要TCP花费额外的回路链接时间(RTT)。

每一次链接的建立须要这样的常常性的开销,而其并不带有实际实用的数据。仅仅是保证链接的可靠性,因此HTTP/1.1提出了可持续链接的实现方法。HTTP/1.1将仅仅建立一次TCP的链接而反复地使用它传输一系列的请求/响应消息,因此降低了链接建立的次数和常常性的链接开销。

3、结论:尽管HTTP本身是一个协议,但其终于还是基于TCP的。

只是,眼下,有人正在研究基于TCP+UDP混合的HTTP协议。

Socket是什么呢?

Socket是应用层与TCP/IP协议族通信的中间软件抽象层。它是一组接口。在设计模式中,Socket事实上就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是所有,让Socket去组织数据,以符合指定的协议。

时间: 2024-10-07 10:46:34

TCP、UDP和HTTP的相关文章

TCP/UDP网络连接的固定写法

java.net包中定义的两个类Socket(client) ServerSocket(server)建立连接时所需寻址信息为远程计算机的IP地址和端口号(自己指定端口号>1024,小于1024的可能被系统征用)TCP,UDP端口哥含65536个 TCP: Server端与Cilent端同时写,启动时必须先启动Server端 import java.net.*; public class TCPServer{ public static void main(String [] args) thr

How To: Perl TCP / UDP Socket Programming using IO::Socket::INET

http://www.thegeekstuff.com/2010/07/perl-tcp-udp-socket-programming/ In this article, let us discuss how to write Perl socket programming using the inbuilt socket modules in Perl. Perl socket modules provides an object interface that makes it easier

TCP,UDP,HTTP,IP,SOCKET

近日对各网络协议进行了一番学习,宏观认识上有收获. 网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.(引用)IP 协议对应于网络层,TCP/UDP协议对应于传输层, HTTP协议对应于应用层, SOCKET则是对TCP/IP协议的封装和应用. TCP连接的三次握手:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn

涨知识-VI 基于TCP/UDP的应用层协议

基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Transfer Protocol 文件传输协议) SMTP(Simple Mail Transfer Protocol 简单邮件传输协议),用来发送电子邮件 POP3(Post Office Protocol 3)邮件读取协议,协议通常被用来接受电子邮件 HTTP HTTPS 基于UDP: NFS(net

HP-SOCKET TCP/UDP通信框架库解析

项目概述: HP-SOCKET是一套通用TCP/UDP通信框架,包括服务器.客户端.Agent组件:其目标是提供高性能.通用性.简易性.可扩展.可定制: 鉴于此,其仅实现基本的通用框架通信.数据收发功能,供上层应用直接简单使用的接口实现:而对于数据包完整性和协议解析等未处理, 也就意味着需要应用层自己处理一些数据包构造或解析等操作: 事实上目前只能支持windows平台: 1. 对于TCP通信模式下:服务器端和Agent均采用的是异步IO模型中的完成端口模型,客户端采用的是就绪IO通告模型中的W

Java TCP/UDP socket 编程流程总结

最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就像通过一个文件的file handler就可以都写数据到存储设备上一样.根据TCP协议和UDP协议的不同,在网络编程方面就有面向两个协议的不同socket,一个是面向字节流的一个是面向报文的. 对socket的本身组成倒是比较好理解.既然是应用通过socket通信,肯定就有一个服务器端和一个客户端.

TCP/UDP协议

TCP/UDP协议 1.协议简介 TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议.其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送.可靠性.有效流控.全双工操作和多路复用.通过面向连接.端到端和可靠的数据包发送.通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送:而UDP则不为IP提供可靠性.流控或差错恢复功能.一般来说,TCP对应的是可靠性要求高的应用,而UDP

HTTP,FTP,TCP,UDP及SOCKET

一.TCP/IP协议简析TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层:网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP.HTTP.TELNET.SMTP.DNS等协议 HTTP是应用层协议,其传输都是被包装成TCP协议传输.可以用SOCKET实现HTTP.SOCKET是实现传输层协议的一种编程API,可以是TCP,也可以是UDP. 二.Socket连接与HTTP连接区别[Socket]由于通常情况下Socket

web service,soap ,http,tcp,udp

webservice and soap  HTTP只负责把数据传送过去,不会管这个数据是XML.HTML.图片.文本文件或者别的什么.而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等,怎么能够混为一谈.                 这样说两种协议:     HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等....         SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信. Web service

python学习之TCP/UDP

TCP/UDP都是网络编程(socket)的两种基于C/S结构的程序. UDP:非可靠连接速度快,服务器:创建socket 绑定ip和端口后直接从指定的IP和端口接收数据不用侦听:客户端:创建socket ,直接接收数据,不需要建立连接. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定端口: s.bind(('127.0.0.1', 9999)) s.recvfrom(1024) #接收数据. TCP:可靠连接,客户端此外还需要