zoukankan      html  css  js  c++  java
  • http tcp udp ip 间的关系

    首先,我自己梳理一下,其实除了应对以后的笔试,还有需要应对的是自己在编程中对于api的选择,我在满足需求时采取哪种方案更好。

    首先,我需要了解的是tcp/ip是一个协议组,有三大层:

    ip 对应于网络层

     tcp 和 udp 对应于传输层

    http 对应于应用层 

     socket 属于api ,是对tcp/ip的封装。

    其中,应用层存在的意义是使tcp/ip传输过来的数据内容能够识别出来。

    通过socket 我们才能使用tcp/ip协议

    CSDN上有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

    (从百度摘录)

    问题1:tcp 有哪三次握手?然后结束时需要握手不?

    第一次:客户端向服务的发送SYN包,等待服务端确认;

    第二次:服务端收到客户端的SYN包,确认客户端的syn(ack=j+1),向客户端发送确认包ACK(ack=k),即syn+ack包,发送完毕后,服务端进入SYN_RECV状态

    第三次:客户端收到服务端的syn+ack包,向服务端发送确认包ack(ack=k+1),发送完毕后,双方进入establish状态,完成三次握手。

    问题2:利用socket建立的网络连接步骤

    socket 链接至少需要一套套接字,其中客户端的是client socket ,服务端的是server socket 。

    套接字之间连接过程,三个步骤:服务器监听,客户端请求,连接确认。

    1.服务器监听:服务端套接字处于等待连接状态,实时监控网络,等待客户端发送请求。

    2.客户端请求:客户端套接字提出请求,要连接服务端的套接字。客户端套接字需要指出服务端套接字的ip和端口,向服务端发出请求。

    3.连接确认:当服务端套接字接收到客户端套接字,响应客户端套接字的要求,建立一个线程,把服务端套接字的描述发送给客户端。一旦客户端确认此描述,双方建立连接。

    问题3:http链接的特点

    http 是超文本传输协议,最显著特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,主动释放连接。

    问题4:tcp和udp的区别?

    tcp是面向链接,三次握手是为了保持连接性。

    udp是非面相链接,就是发送时不需要和对方建立连接,也不需要理会对方是否接收。

    udp发送的数据内容,用户是可以进行验证的。

  • 相关阅读:
    linux c编程操作数据库(sqlite3应用)
    Silverlight-MEF-DEMO
    微软最有价值专家分享校园招聘心得体会
    C# IOCP服务器项目(学习)
    ASIHTTPRequest类库简介和使用说明
    用Python下载美国国家气候数据中心(NCDC)的气候数据
    20个大家应该知道的大数据资源
    分布式文件系统HDFS,大数据存储实战(一)
    vmware虚拟的ubuntu18.04死机,尝试关闭时关机报“虚拟机xxx繁忙”
    ubuntu下hadoop0.20.2报错/dfs/name is in an inconsistent state
  • 原文地址:https://www.cnblogs.com/gengen1990/p/5940020.html
Copyright © 2011-2022 走看看