简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)

我在这里简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习面试时方便回答)

1、socket原理

Socket支持网上点对点的通信

服务的一种技术,服务端端实现监听连接。client实现发送连接请求,建立连接后进行发送和接收数据。

服务器端建立一个serversocket。设置好本机的ip和监听的port与socket进行绑定,并開始监听连接请求,当接收到连接请求后,发送确认,同client建立连接。開始与client进行通信。

client建立一个socket。设置好server端的IP和提供服务的port。发出连接请求,接收到server的确认后。尽力连接,開始与server进行通信。

server端和client的连接及它们之间的数据传送均採用同步方式。

2、IP 

IP是一个无连接的协议,主要就是负责在主机间寻址并为数据包设定路由,在交换数据前它并不建立会话。由于它不保证正确传递,还有一方面,数据在被收到时,IP不须要收到确认,所以它是不可靠的

3、TCP

TCP是一种可靠的面向连接的传送服务。它在传送数据时是分段进行的,主机交换数据必须建立一个会话。它用比特流通信,即数据被作为无结构的字节流。

通过每个TCP传输的字段指定顺序号。以获得可靠性。

假设一个分段被分解成几个小段,接收主机会知道是否全部小段都已收到。通过发送应答,用以确认别的主机收到了数据。对于发送的每个小段,接收主机必须在一个指定的时间返回一个确认。

假设发送者未收到确认,数据会被又一次发送。假设收到的数据包损坏。接收主机会舍弃它,由于确认未被发送。发送者会又一次发送分段。

port

SOCKETS有用程序使用一个协议port号来标明自己应用的唯一性。

port能够使用0到65536之间的不论什么数字。在服务请求时。操作系统动态地为client的应用程序分配port号。

套接字

套接字在要领上与文件句柄类似,由于其功能是作为网络通信的终结点。

一个应用程序通过定义三部分来产生一个套接字:主机IP地址、服务类型(面向连接的服务是TCP,无连接服务是UDP)、应用程序所用的port。

TCPport

TCPport为信息的传送提供定地点。port号小于256的定义为经常使用port。

TCP的三次握手

TCP对话通过三次握手来初始化。

三次握手的目的是使数据段的发送和接收同步;告诉其他主机其一次可接收的数据量,并建立虚连接。

我们来看看这三次握手的简单过程:

(1)初始化主机通过一个同步标志置位的数据段发出会话请求。

(2)接收主机通过发回具有下面项目的数据段表示回复:同步标志置位、即将发送的数据段的起始字节的顺序号、应答并带有将收到的下一个数据段的字节顺序号。

(3)请求主机再回送一个数据段,并带有确认顺序号和确认号。

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到server,主机B由SYN=1知道,A要求建立联机。

第二次握手:主机B收到请求后要确认联机信息。向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包

第三次握手:主机A收到后检查ack number是否正确。即第一次发送的seq number+1,以及位码ack是否为1。若正确。主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完毕三次握手,主机A与主机B開始传送数据。

4、HTTP协议

HTTP协议的主要特点可概括例如以下:

1.支持客户/server模式。

2.简单高速:客户向server请求服务时,仅仅需传送请求方法和路径。

请求方法经常使用的有GET、HEAD、POST。每种方法规定了客户与server联系的类型不同。

因为HTTP协议简单。使得HTTPserver的程序规模小,因而通信速度非常快。

3.灵活:HTTP同意传输随意类型的数据对象。正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接仅仅处理一个请求。server处理完客户的请求,并收到客户的应答后,即断开连接。採用这样的方式能够节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。

缺少状态意味着假设兴许处理须要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。还有一方面,在server不须要先前信息时它的应答就较快。

时间: 2024-10-14 11:41:23

简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)的相关文章

学习TCP/IP - TCP三次握手连接和四次握手断开连接

TCP连接 一.为什么需要TCP 链路层将位流封装成数据帧,同时屏蔽了底层物理层的复杂性; 网络层定义了IP地址,划分了网段,使得源计算机可以快速找到目标计算机,但它无法保证数据准确到达. 所以在传输层定义了TCP协议,它是面向连接的可靠传输协议, 二.TCP如何建立连接 2.1) TCP三次握手建立连接 TCP三次握手创建连接 a. 由于TCP是面向连接的,所以有服务端和客户端之分.服务端先在对应的端口监听(LISTENING), 等待客户端发送的tcp连接请求. b. A机器向B机器发起TC

python基础之socket编程(TCP三次握手和四次挥手)

TCP协议中中的三次握手和四次挥手 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了. 那如何断开连接呢?简单的过程如下: [注意]中断连接端可以是Client端,也可以是Server端. 假设Client端发起中断连接请求,也就是发送FIN报

python socket 编程之二:socket与tcp三次握手

建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认:第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手. socket里哪一步经

TCP三次握手、四次挥手出现意外情况时,为保证稳定,是如何处理的?

一. 序当我们聊到 TCP 协议的时候,聊的最多的就是三次握手与四次挥手.但是大部分资料和文章,写的都是正常的情况下的流程.但是你有没有想过,三次握手或者四次挥手时,如果发生异常了,是如何处理的?又是由谁来处理? TCP 作为一个靠谱的协议,在传输数据的前后,需要在双端之间建立连接,并在双端各自维护连接的状态.TCP 并没有什么特别之处,在面对多变的网络情况,也只能通过不断的重传和各种算法来保证可靠性. 建立连接前,TCP 会通过三次握手来保证双端状态正确,然后就可以正常传输数据了.当数据传输完

TCP/IP的三次握手和四次握手 Dos攻击

TCP连接的状态图 TCP建立连接的三次握手过程,以及关闭连接的四次握手过程 贴一个telnet建立连接,断开连接的使用wireshark捕获的packet截图. 1.建立连接协议(三次握手) (1)客户 端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1. (2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志.因此它表示对刚才客户端SYN报文的回应:同时又标志SYN给客户端,询问客户端是否准备好进行数据通 讯. (3) 客户必须再次

关于TCP/IP的三次握手和四次挥手解释

TCP协议三次握手过程分析 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge nu

TCP/IP报文 三次握手 四次挥手

1.TCP报文格式  TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式  上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.  (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1.  (3)标志位:共6个,即URG.ACK.PSH.RST.SYN.FIN等,具体含义如下:  (A)URG:紧急指针

网络通信协议下的 TCP(三次握手,四次挥手) 和 UDP socket 套接字

osi七层模型 互联网的核心就是由一堆协议组成,协议就是标准,标准就是大家都认可的,所有人都按照这个来,这样大家都能够互相了解,互相深入了~~~比如全世界人通信的标准是英语 五层通信流程: tcp协议:(TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为192.3.4.16 而端口号为80,那么得到的套接字为192.3.4.16:80.) 当应用程序希望通过 TCP 与另一个应用程序

十五大原理之零三--TCP/IP的三次握手和四次断开原理

重要的标志位含义: ACK:表示确认.只有当ACK标志位为1时,TCP报文的确认字段才有效. SYN:表示同步,在连接建立时用来同步序列号.当SYN=1而ACK=0时,表明这是一个连接请求报文.若对方同意建立连接时,则在响应报文中,应使SYN=1,ACK=1.因此,同步比特SYN置为1,就表明这是一个连接请求报文或连接接受响应报文. FIN:用于释放一个连接.当FIN位为1时,表明此报文段的发送端数据已发送完毕,并要求释放连接. 一.TCP/IP的三次握手 第一次握手:首先发送方主机向接收方主机