自己理解网络协议(http ftp telnet)最底层都是靠套接字来实现的,但在网上能搜到的信息很少,希望大家讨论赐教,如有相关专门讨论的链接文章最好

解决方案 »

  1.   

        套接字,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程.
        套接字接口可分为三类:公认端口 注册端口 动态和/或私有端口.
        应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
        Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序的桥梁,Socket在应用程序中创建,通过绑定与网络驱动建立关系。此后,应用程序送给Socket的数据,由Socket交网络驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定IP地址和端口号相关的数据后,由网络驱动程序交给Socket,应用程序便可从该Socket中提取接收到得数据,网络应用程序就是这样通过Socket进行数据的发送与接收的。
        
      

  2.   

    看到有使用套接字实现FTP传输文件的程序,能解释一下FTP(协议)在这里起什么作用,怎么工作的?
    另外,http协议又是如何传输的,它跟FTP有什么区别?
    平时看到的网页是HTTP传输的,在网上它是否是按HTTP协议进行编码以二进制流的形式传输的呢
    困惑
    另外,那套接字是不是只在“传输层--应用层”起作用,在网上传输的过程中没有它的事情?
      

  3.   

    FTP
    HTTp
      

  4.   

    觉得你可能首先要从网络协议入手, 所谓网络协议,就是通讯双方在通讯之前做的一个约定,现在的网络协议已经被标准化,所以各个平台可以tcp/ip进行其实所谓的http/snmp/smtp/ftm等等都只是基于tcp/ip实现的而已.
    何谓socket,如何让网络上的两台或者多台机器进行通讯,那么首先你要有一个协议,这个协议可以使tcp/ip.
    那么协议确定了如何确定是网络中的那台机器,这时就需要使用ip地址.其实ip地址的组成被分为两部分,即网络号和机器号,网络号确定当前机器所在的网络,机器号确定网络中的机器.知道了机器那么如何确定是机器上的那一个应用程序,这个责任就交给port,这样我们通过ip + port + protocol组合就确定了网络上的指定服务程序,把这样一组组合就叫做一个socket.其是对当前网络协议的一个实现而已.