zoukankan      html  css  js  c++  java
  • 谈谈对TCP、UDP、FTP、HTTP、Socket理解

    TCP、UDP、FTP、HTTP、Socket

    作者:Vincent Wang 链接:https://www.zhihu.com/question/20583641/answer/20242980 来源:知乎

    Http,FTP是应用层协议,HTTP用来传输超文本而FTP用来传文件;TCP/UDP 是传输层协议

    作者:晚风轻拂 链接:https://www.zhihu.com/question/20583641/answer/130840531 来源:知乎

    1,主机需要网络传输数据,网络本质上是一种服务,主机和网络之间靠传输层接口,就好比你要叫快递送东西;

    2,网络可以提供两种服务:
    1)可靠,面向连接;(TCP) 就像靠谱的快递,每一步都有反馈和监控,当然价格也是呵呵...
    2)不可靠,尽力而为的传输 (UDP) 就像某些不靠谱的快递或者听都没听过的XX快递,价格低,但是能不能到就靠运气了。

    3,两种服务无所谓好坏,TCP 的可靠是需要消耗很多资源的,效率低 (大块,重要的文件等)UDP 不保证可靠性,但是效率高(视频,语音,不重要的小文件等)

    4,而我们常说的套接字Socket,则是一个编程接口(API),是TCP/UDP向开发者提供的用作网络开发的接口,它是对TCP/UDP协议的封装。可以这么理解,有两个进程(一台计算机能有多个进程,比如QQ和微信就可以被看做两个进程),跨计算机,他俩想通讯的话就必须通过网络对接起来,而这就是Socket的作用。这两个进程,需要 有一个进程是被动方,这就是服务器 ;而 另一个则是主动方,这就是客户端 。他们 所在的计算机叫做主机host,在网络上有特定的Ip地址。一台计算机可以有多个进程作为服务器,但是ip地址只有一个,所以要通过不同的 端口port 进行区分。因此,服务器需要绑定在本机的某个端口上,客户端则需要声明自己要连接哪台主机(地址)的哪个进程(端口)两个进程通过网络(Socket)建立其通讯渠道,然后就能通过recv 和 send 来收发一些信息。所以Socket就是指代联通这种通讯的桥梁(标识)。

    (作者:hoodlum1980 链接:https://www.zhihu.com/question/29637351/answer/110219546 来源:知乎)

    5,而其他的“HTTP、FTP、SMTP 等所谓的“Application-layer Protocol”协议”指的是在TCP/IP 通讯协议框架下具体实现特定功能的应用HTTP 用来实现超文本传输,FTP文件传输,SMTP处理邮件等等),两者的关系,咳咳,关系通俗的说:TCP和UDP以及IP 协议是互联网络通讯的基础,就像《宪法》,而应用协议就像具体的《刑法》、《民法》、《婚姻法》、《未成年人保护法》......等等,在某个领域的特定应用和具体实现,但是最基本的一条:违宪无效。也可以这么说,TCP/UDP这些传输层协议可以让两个程序说话,而HTTP/FTP这些应用层则定义了说话的规则即说什么话。

    文中部分文字来源:作者:Vincent Wang 链接:https://www.zhihu.com/question/20583641/answer/20242980 来源:知乎

  • 相关阅读:
    Java3D实例应用载入VRML模型
    Tomcat数据库连接池的配置方法总结
    WebGL学习笔记使用3D引擎threeJS实现星空粒子移动
    mybatis应用实例学习
    springmvc 实例应用
    springmvc定制伪REST风格及JSR303Bean校验整合
    SpringMVC中应用Ajax异步通讯
    Java3D实例应用载入3ds 模型
    Device Mutipath参数设置
    Nginx+FastCGI+Python
  • 原文地址:https://www.cnblogs.com/sxhjoker/p/9352027.html
Copyright © 2011-2022 走看看