黑客编程教程(三)Windows 网络协议
首先介绍一下网络协议:网络协议是网络上所有设备之间通信规则的集合,他定义了通信时信息必须采用的格式和这些格式的意义.大多数
网络协议都采用分层体系结,每一层都建立在他的下层之上,向他的上一层提供服务,而把如何实现这一服务的细节对上层加以屏蔽.一台设备上
的第N层与另一台设备上的第N层进行通信的规则就是第N曾协议.在网络上的个层之间中存在着许多协议,接受方和发送方同层的协议必须一致,
否则,一方就无法识别另一方发出的信息.网络协议使网络上的设备各种设备能相互交换信息. 常用的协议有:TCP/IP协议,IPX/SPX歇息等等.在局域网中常用的IPX/SPX协议.而访问INTERNET,就必须添加TCP/IP协议. TCP/IP协议是传输控制协议/互联网络协议.他规范了网络上所有设备的通信,尤其是一个主机与另一个主机之间的数据往来格式以及传送
方式. 在网络的各层中还存在着许多协议,下面列出部分网络协议规范:
ARP 地址解析协议
SNMP 网络管理协议
BOOTP 让无盘站从一个中心服务器上获得IP地址
DHCP 动态主机配置协议 下面介绍网络7层协议在WINDOWS的实现: 7层协议 WIN系统
________________________________________
应用层 应用程序
________________________________________________
表示层 WINSOCK API(DLL)
___________________________________________
会话层 SPI(DLL)
__________________________________________________
传输层 TDI(VXD,SYS)
___________________________________________________
网络层 NDIS(VXD,SYS)
__________________________________________________
数据链路层 网卡驱动程序(VXD,SYS)
___________________________________________
物理层 网卡
_________________________________________________
相信这个映射图可以让大家比较清楚了解他们的对应关系 TCP协议图示 应用程序协议 HTTP FTP TELNET
传输协议 TCP UDP
网际协议 IP
物理层协议 网卡 IP协议保证数据的传输,TCP协议保证数据传输的质量.
TCP/IP协议基于四层结构:应用层,传输层,网络层,接口层,数据在传输时每通过一层就要在数据上加个头,其中的数据供接受端同层使用,在
接收端,每经过一层就把头去掉,来保证传输数据格式的一致. TCP头部结构:
16位源端口号 16位目的端口号
_______________________________________________________________________________
32位序列号
___________________________________________________________________________
32位确认号
_____________________________________________________________________________________
4位首部长度+6位保留字 6位标志 16位窗口大小
_______________________________________________________________________________________
16位效验和 16位紧急数据偏移量
_____________________________________________________________________________________
数据段
_______________________________________________________________________________ IP头部结构:
4位IP版本号 4位首部长度 8位服务类型 16位总长度
___________________________________________________________________________________________
16位标示 3位标志和偏移
__________________________________________________________________________
8位生存时间 8位协议 16位IP首部效验和
________________________________________________________________________________________________
32位源IP地址
_________________________________________________________________________________________________________
32位目的IP地址
________________________________________________________________________________________
TCP头和数据 ________________________________________________
黑客编程教程(三)Windows 网络协议的更多相关文章
- 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...
- 黑客编程教程(二)Win API编程简介
第二节 Win API编程简介 下面介绍一下WIN API. 我们需要自己编写一个工具时,必然会用到很多操作windows和控制windows的函数,这些函数就是windows API. API是Ap ...
- 黑客编程教程(一)了解Windows机制
第一节 了解Windows机制 Windows 是一个“基于事件的,消息驱动的”操作系统. 在Windows下执行一个程序,只要用户进行了影响窗口的动作(如改变窗口大小或移动.单击鼠标等)该动作就会触 ...
- 黑客编程教程(六)Windows的关机和重起
第六节 Windows的关机和重起 很多木马都有远程关机功能,但这并不是一个很好的功能.不过对于入侵服务器,有时需要重起服务器.其实对于关机和重起,只需要调用几个 API函数即可实现. 对于WIN9X ...
- 黑客编程教程(八)编写NT服务
先介绍一下什么是NT服务,实际上就是一个可以在系统启动时自动在一定身份下启动的,伴随着系统长期存在的进程. 一个NT服务有三部分构成: :Service Control Manager(SCM) 每个 ...
- View Programming Guide for iOS ---- iOS 视图编程指南(三)---Windows
Windows Every iOS application needs at least one window—an instance of the UIWindow class—and some m ...
- python网络编程【三】(网络服务器)
建立一个服务器需要以下4步: 1.建立socket对象. 2.设置socket选项(可选的) 3.绑定到一个端口(同样,也可以是一个指定的网卡). 4.侦听连接. 下面代码片段可以实现这些功能: ho ...
- 黑客编程教程(十三)多线程DOS程序
DOS基本原理相信大家都已经很熟悉了,DOS工具大家也用的很熟悉.在群里 经常有人说什么时候去DOS什么东西. 现在我们就自己编写一个DOS工具. #include <winsock2.h> ...
- 黑客编程教程(十五)HTTP代理
#include <stdio.h> #include <winsock2.h> #define MAXBUFLEN 20480 #define HTTPADDLEN 50 # ...
随机推荐
- Linux操作系统安装与VMTools的安装
Linux操作系统安装:虚拟机+RedHat 1.安装虚拟机VMware_WorkstationV7.1.3 2.安装RedHat 自动安装(会自动安装VMTools): 打开虚拟机-->新建虚 ...
- 页面载入时通过获取GridView某行某列的值来控制某一列的控件属性
通过获取状态来控制"查看"button的Visible属性值. 在前台GridView中加入 OnRowDataBound="GridView1_RowDataBound ...
- 关于zookeeper的自我解惑
分布式服务框架 Zookeeper -- 管理分布式环境中的数据: http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ ...
- 解决 maven 项目启动 提示 class not find
第一种方法: 项目 --> .classpath <classpathentry exported="true" kind="con" path=& ...
- JProfiler_SN_8_x key
按默认选择“Single or evaluation license”Name 和 Company 随意-----------------------忧郁的分割线------------------- ...
- 解决python:'ascii' codec can't encode characters in position问题
今天把一个列表转换成字符串输出的时候出现了UnicodeEncodeError: 'ascii' codec can't encode characters in position 32-34: or ...
- LNMP的的编译安装全过程
一.对系统进行更新 yum update -y lsb_release -a 二.禁用SELINUX sed -i '/SELINUX/s/enforcing/disabled/' /etc/seli ...
- iOS获取本地沙盒视频封面图片(含swift实现)
最近做了个小应用,有涉及到本地视频播放及列表显示. 其中一个知识点就是获取本地存储视频,用来界面中的封面显示. 记录如下: //videoURL:本地视频路径 time:用来控制视频播放的时间点图片截 ...
- linux 常用awk命令
linux awk命令详解awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每 ...
- 也来学学插件式开发续-利用MEF
前面一个博客:也来学学插件式开发中很多朋友留言说可以用MEF来实现.于是我就试着用MEF实现了一下. 步骤和上一篇差不多,只是加载插件的方式有所不同.这只是一个自己的示例程序,肯定有很多不足之处,欢迎 ...