当前位置: 首页 > news >正文

Winsocket编程之TCP/IP体系结构

Winsocket编程之TCP/IP体系结构
一、TCP/IP 体系结构与特点

  1、TCP/IP体系结构

  TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输层服务,而IP则是提供网络层服务。TCP/IP包括以下协议:(结构如图1.1)

(图1.1)

  IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。同时为ICMP,TCP,   UDP提供分组发送服务。用户进程通常不需要涉及这一层。

  ARP: 地址解析协议(Address Resolution Protocol)
   此协议将网络地址映射到硬件地址。

  RARP: 反向地址解析协议(Reverse Address Resolution Protocol)
   此协议将硬件地址映射到网络地址

  ICMP: 网间报文控制协议(Internet Control Message Protocol)
   此协议处理信关和主机的差错和传送控制。

  TCP: 传送控制协议(Transmission Control Protocol)
   这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。(注:大多数网络用户程序使用TCP)

  UDP: 用户数据报协议(User Datagram Protocol)
   这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。

  FTP: 文件传输协议(File Transfer Protocol)
   允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。

  SMTP: 简单邮件传送协议(Simple Mail Transfer Protocol)
   SMTP协议为系统之间传送电子邮件。

  TELNET:终端协议(Telnet Terminal Procotol)
   允许用户以虚终端方式访问远程主机

  HTTP: 超文本传输协议(Hypertext Transfer Procotol)
  
  TFTP: 简单文件传输协议(Trivial File Transfer Protocol)

  2、TCP/IP特点

  TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。

  图1.2是TCP/IP协议核心与应用程序关系图。


(图1.2)

  二、专用术语

  1、套接字

  套接字是网络的基本构件。它是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连听进程。套接字存在通信区域(通信区域又称地址簇)中。套接字只与同一区域中的套接字交换数据(跨区域时,需要执行某和转换进程才能实现)。WINDOWS 中的套接字只支持一个域——网际域。套接字具有类型。

  WINDOWS SOCKET 1.1 版本支持两种套接字:流套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM)

  2、WINDOWS SOCKETS 实现

  一个WINDOWS SOCKETS 实现是指实现了WINDOWS SOCKETS规范所描述的全部功能的一套软件。一般通过DLL文件来实现

  3、阻塞处理例程

  阻塞处理例程(blocking hook,阻塞钩子)是WINDOWS SOCKETS实现为了支持阻塞套接字函数调用而提供的一种机制。

  4、多址广播(multicast,多点传送或组播)

  是一种一对多的传输方式,传输发起者通过一次传输就将信息传送到一组接收者,与单点传送
(unicast)和广播(Broadcast)相对应。


相关文章:

  • html 属于mvvm框架,vue.js是mvvm框架吗?
  • 部署ISA网络防火墙策略
  • 计算机英语 自我介绍,计算机专业学生面试英语自我介绍
  • Windows Embedded开发资源介绍
  • 异步socket的线程分配(C#)
  • 计算机专业期末试卷,计算机专业英语期末考试试卷(A卷)
  • 2021年考研计算机专业调剂,2021年考研东北石油大学谢坤课题组计算机专业接收调剂研究生的通知...
  • .NET企业级应用架构设计系列之应用服务器
  • 概率题怎么使用计算机计算,计算机系统结构计算问题答案.ppt
  • 上海电子信息职业技术学院计算机网络技术,【五月校考考纲】2018年上海电子信息职业技术学院-计算机应用...
  • 英雄会精彩片段-电梯演讲和云计算,创业论坛
  • 为什么我手机的科学计算机算的不对,“手机计算机和科学计算机算出来答案不一样,我到底该信哪个哈?”...
  • 深入探索Symbian多视图程序开发
  • summernote html标签,关于summernote编辑器代码段html的插入问题
  • JavaEE下的测试驱动 乱弹
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • CSS 专业技巧
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Electron入门介绍
  • isset在php5.6-和php7.0+的一些差异
  • Java 最常见的 200+ 面试题:面试必备
  • Java超时控制的实现
  • Js基础知识(一) - 变量
  • js数组之filter
  • laravel 用artisan创建自己的模板
  • PHP的Ev教程三(Periodic watcher)
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 给Prometheus造假数据的方法
  • 开源SQL-on-Hadoop系统一览
  • 使用Gradle第一次构建Java程序
  • 在weex里面使用chart图表
  • 栈实现走出迷宫(C++)
  • 正则与JS中的正则
  • 交换综合实验一
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​比特币大跌的 2 个原因
  • #Spring-boot高级
  • (02)Hive SQL编译成MapReduce任务的过程
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2)STL算法之元素计数
  • (2015)JS ES6 必知的十个 特性
  • (26)4.7 字符函数和字符串函数
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (floyd+补集) poj 3275
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (NSDate) 时间 (time )比较
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (接口封装)
  • (三)docker:Dockerfile构建容器运行jar包
  • (循环依赖问题)学习spring的第九天
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • ./configure,make,make install的作用