美文网首页
TCP/IP、Http、Socket

TCP/IP、Http、Socket

作者: STF_ZHANG | 来源:发表于2016-08-15 19:41 被阅读0次

说明:很多时候对于不经常用的东西,或许看过的东西都会随着时间慢慢的就忘记了,所以做个随笔还是很有必要的,老师常说:好记性不如烂笔头。

TCP/IP、Http、Socket:在网上投简历找IT方面工作大多会看到公司要求会写上什么熟悉Http/TCP/IP/Socket等的,所以在当面试官问到的时候总要说出自己的理解对吧。所以就简单总结下加深印象。

一、什么是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状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

总结:先客户端发送syn=j的包,接着服务器收到之后做确认ACK(ack=j+1)然后自己发一个syn=k的包SYN。两个放一起ACK+SYN发回客户端,客户端收到之后再对服务器发送ACK(k+1)发包就完了,双方进入ESTABLISHED状态。

二、HTTP链接的特点

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

总结:这是最常见的,尤其是现在只能手机的发展,只要是稍微做过登录这方面的都会理解。

三、TCP和UDP的区别

一个是面向连接一个是不面向连接。TCP要连接就需要双方达成一致才能进行数据传输,所以这过程中可能会有失败呀,效率上什么的不理想。但是UDP不需要连接万一丢了怎么办?对方也没有失败或者确认的信号,所以这不可靠。

四、Socket

讲了上面的Http/TCP/IP/UDP,那么Socket是什么鬼?感觉很抽象,是的!就是对TCP/IP协议的抽象。它可不是什么协议,但是我们为啥用它来编程?特别是通讯这方面?其实Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,因为TCP/IP用在实际开发中很困难,所以要封装一个各个平台都可以方面间接的操作他们的接口(API),那么他就是Socket。

这里只是基础简单的得以了解这几个东西,希望对你有帮助,以后还会补充。

相关文章

网友评论

      本文标题:TCP/IP、Http、Socket

      本文链接:https://www.haomeiwen.com/subject/dkirsttx.html