Windows Socket+网络

     Winsock是 Windows下套接字标准

         Winsock 编程分为UDP【Windows socket + UDP】,TCP【Windows socket + TCP】编程。Windows socket 建立在网络基础之上,UDP编程採用用户数据报协议(User Datagram Protocol ,UDP),TCP编程採用传输控制协议(Transmission Control Protocol,TCP)。UDP。TCP不同的特性。适应不同的应用需求。
         UDP,TCP协议建立在网际协议(Internet Protocol,IP)基础上。

         
         1.网际协议(Internet Protocol,IP):

        IP协议的功能:相互连接的网络间数据的传输。即从一个IP主机传输到还有一个IP主机。
       

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZWNvZGVsZXNz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

         IP协议是主机与主机间传输数据协议。仅仅能完毕主机到主机间的数据报传输。

IP数据报格式例如以下:


        IP首部:IP数据报的信息,包括源IP。目标IP等IP数据。这些IP数据好比信件上的地址,保证数据报传输到目标IP主机上。
        IP数据:传输的数据。
        IP协议是不可靠协议,可能发生丢包。错误等,不保证数据一定交付到目标主机。

         2.用户数据报协议(User Datagram Protocol ,UDP):
    
        UDP位于IP协议之上。使用IP作为底层传输协议,UDP将自己的UDP数据报封装于IP数据内传输。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG92ZWNvZGVsZXNz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

         UDP首部:包括源port,目标port等数据。

port保证数据能准确传输到指定的进程。

        UDP数据:传输的数据。
        UDP基于IP协议,IP协议是不可靠协议。UDP本身没有不论什么确保可靠的措施,故UDP协议也是不可靠协议。UDP协议适用于对数据可靠性。顺序交付无要求的程序,UDP能提供更快,更小消耗的传输服务。

       3.传输控制协议(Transmission Control Protocol,TCP):  
      
        同UDP协议,TCP也位于IP协议之上。将TCP数据报封装于IP数据内传输。

        TCP首部:相比UDP,TCP相同包括源port。目标port等数据的同一时候,TCP还包括序号,确认号等信息,这些数据用于确认数据是否被完整交付,TCP是可靠协议的原因就在这里。
        TCP数据:传输的数据。
        TCP尽管建立在不可靠协议IP之上。但TCP採用了多种机制,确保数据有序。可靠的交付。TCP多用于对数据安全要求较高的应用,如Web。电子邮件等。

         4.扩展:
         这里仅仅是简单的介绍了IP。UDP,TCP协议之间的关系。以及这些协议的特点,无法做到面面俱到。读者有兴趣的话,能够阅读计算机网络相关的书籍,《计算机网络》,《UNIX网络编程》等能解你之惑。


【Windows socket+IP+UDP+TCP】网络基础的更多相关文章

  1. TCP/IP笔记(一)网络基础知识

    计算机与网络发展 计算机自诞生伊始,经历了一系列演变与发展.大型通用机计算机.超级计算机.小型机.个人电脑.工作站.便携式电以及现如今的智能手机终端都是这一过程的产物.它们性能逐年增强,价格却逐年下降 ...

  2. ip/udp/tcp包 学习

    /** * 以太网 */ class Ethernet { static readonly size = 14; get Destination(): string { return [ this.v ...

  3. Python Socket Programming UDP/TCP

    基于UDP/TCP的套接字编程demo UDP 客户端/服务器 一个简单的基于UDP协议的客户端和服务器应用的进程通信. 逻辑: 客户端会给服务器发送小写的英文字母,服务器接受后,把它转化成大写再返回 ...

  4. Windows Socket的UDP和TCP编程介绍

    1:网络中进程之间如何通信 为了实现进程之间通信,首要解决的问题是如何唯一标识一个进程,在本地可以通过进程PID来唯一标识一个进程,但是在网络中则是行不通的,其实TCP/IP协议族已经帮我们解决了这个 ...

  5. 网络传输数据封装详解(IP,UDP,TCP)

    IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节.  ...

  6. 【TCP/IP】【网络基础】网页访问流程

    引用自 <鸟哥的linux私房菜> http://cn.linux.vbird.org/linux_server/0110network_basic_1.php#ps7 那 TCP/IP ...

  7. 网络编程—网络基础概览、socket,TCP/UDP协议

    网络基础概览 socket概览 socket模块—TCP/UDP的实现 TCP/UDP总结 网络基础概览 osi七层协议各层主要的协议 # 物理层传输电信号1010101010 # 数据链路层,以太网 ...

  8. Java Socket编程----网络基础

    详见:https://www.cnblogs.com/rocomp/p/4790340.html Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而 ...

  9. c++下基于windows socket的多线程服务器(基于TCP协议)

    之前用c++实现过基于windows socket的单线程TCP服务器(http://www.cnblogs.com/jzincnblogs/p/5170230.html),今天实现了一个多线程的版本 ...

随机推荐

  1. Dapper:安装Dapper时报错

    今天在使用VS 2013安装Dapper的时候报错,具体报错信息如下: 经过网上查找错误原因,发现是安装的Dapper版本过高,.Net Framework版本不支持该版本的Dapper. 解决方案: ...

  2. spring sringboot 加载配置文件 多目录配置文件 多级分类配置文件

    ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = ...

  3. SpringBoot的文件下载

    SpringBoot的文件下载 2017年11月29日 10:32:20 阅读数:3907 SpringBoot的文件下载方法有很多,此处只记录使用Spring的Resource实现类FileSyst ...

  4. css3常用动画样式文件move.css

    move.css zoomIn  zoomInDownouter-circlearrowTop expandOpen fadeIn  fadeInNormal  fadeInUp   fadeInRi ...

  5. Java 应该被记住的8位大人物

    这里列举了 8 个 Java 人物,他们创建了对 Java 社区贡献很大的框架.产品.工具和图书,也因此改变了 Java 的编码方法. 8. Tomcat 和 Ant 创办人 James Duncan ...

  6. Fedora归档管理器支持Rar、7Z

    最新文章:Virson's Blog 方法: 在Fedora下如何安装 RAR 压缩/解压缩程序 (RAR)? RAR格式压缩包解压 命令:yum install unrar 7z格式压缩包解压 yu ...

  7. Linux下面makefile编写

    源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器.   下面我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c或者 ...

  8. Linux C语言连接 sqlserver数据库

    记录一下Linux下使用C语言连接sqlserver的方法. 连接前需要安装freetds. 参考: http://www.cnblogs.com/helloworldtoyou/p/6910075. ...

  9. 理解Java动态代理(1)—找我还钱?我出钱要你的命

    代理模式是最常用的一个设计模式之一,理解起来也是很简单,一张图足以说明了,LZ就不废话了. 至于代理模式能干嘛也不是LZ今天想说的,今天主要想简单介绍下JAVA里面的动态代理.“动”当然是相对“静”来 ...

  10. Ubuntu 14.04 LTS 安装 Juno 版 OpenStack Keystone

    本文介绍如何在Ubuntu 14.04 LTS 上安装Juno版的Keystone, 我们采用的是手动安装的方式, 同时仅针对OpenStack的身份与访问管理系统Keystone. 事实上OpenS ...