zoukankan      html  css  js  c++  java
  • socket编程学习step2

    引言:主机之间如何相互交互呢?网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口“可以唯一标识主机中的应用进程。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进程就可以利用这个标志与其他主机进行交互了。

    什么是TCP/IP、UDP?

    1、TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,面向连接、保证高可靠性的传输层协议。

    1)TCP/IP协议存在于OS中,网络服务通过OS提供,在OS中增加支持TCP/IP的系统调用--套接字(Socket、connect、send等)

    2)TCP/IP协议族包括运输层、网络层、链路层、而socket所在位置如图,socket是应用层与TCP/IP协议族通信的中间软件抽象层。

    2、UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议,也是传输层协议,它是无连接的,不保证可靠的传输层协议。

    Socket是什么?

    1、socket套接字

          socket起源于Unix,而Unix/Linux基本哲学是“一切皆文件”,都可以用“open->read/write->close“模式来操作。Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读写I/O、打开、关闭)。

          说白了Socket是应用层与TCP/IP协议族通信的“中间软件抽象层“,它是一组接口

    2、socket描述符

          套接字描述符其实就是一个整数,当应用程序要为因特网通信创建一个套接字(socket)时,操作系统就返回一个小整数作为描述符来标识这个套接字。从应用程序的角度看,文件描述符就是一个整数(也可以理解为指向文件的指针),可以用它来读写文件。

    Socket通信流程图

    建立一次连接经过三次握手:A请求数据--B应答数据--A再次确认。

    终止一个连接经过四次握手:A主动关闭--B被动关闭--B主动关闭--A再次确认。

        

  • 相关阅读:
    jquery实现记住用户名和密码
    从mysql8.0.15升级到8.0.16
    mysql8.0.15二进制安装
    DML、DDL、DCL的分别是什么
    redis3.2.10单实例安装测试
    redis5.0.3单实例简单安装记录
    percona-xtrabackup快速安装及其简单使用
    pt-show-grants的用法
    Centos6安装Percona-tools工具
    sshpass-Linux命令之非交互SSH密码验证
  • 原文地址:https://www.cnblogs.com/kane0526/p/7420664.html
Copyright © 2011-2022 走看看