tcp协议

网络基础:socket模块

﹥>﹥吖頭↗ 提交于 2020-04-01 05:36:21
socket:   套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。 基于TCP协议的socket:tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 socket参数详解: socket.socket(family=AF_INET,type=SOCK_STREAM,proto=0,fileno=None) 创建socket对象的参数说明: family 地址系列应为AF_INET(默认值),AF_INET6,AF_UNIX,AF_CAN或AF_RDS。 (AF_UNIX 域实际上是使用本地 socket 文件来通信) type 套接字类型应为SOCK_STREAM(默认值),SOCK_DGRAM,SOCK_RAW或其他SOCK_常量之一。 SOCK_STREAM 是基于TCP的,有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料传送。 SOCK_DGRAM 是基于UDP的,无保障的面向消息的socket,多用于在网络上发广播信息。 proto 协议号通常为零,可以省略,或者在地址族为AF_CAN的情况下,协议应为CAN_RAW或CAN_BCM之一。 fileno

20199307 2019-2020-2 《网络攻防实践》第五周作业

风流意气都作罢 提交于 2020-03-31 17:26:57
问题 源 作业所属课程 网络攻防实践 作业要求 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 课程目标 了解网络攻防的概要 这个作业在哪个具体方面帮助我实现目标 深入了解网络嗅探、网络协议的分析 作业正文.... 见后文 其他参考资料 见后文 目录 一、实践内容 TCP/IP网络协议栈攻击概述 网络安全属性(CIA) 网络攻击基本模式 TCP/IP网络协议栈安全缺陷与攻击技术 原始报文伪造技术及工具 网络层协议攻击 IP源地址欺骗 ARP欺骗 ICMP路由重定向攻击 传输层协议攻击 TCP RST攻击(TCP重置报文攻击) TCP会话劫持攻击 TCP SYN Flood拒绝服务攻击 UDP Flood拒绝服务攻击 二、实践过程 ARP缓存欺骗攻击 ICMP重定向攻击 SYN Flood攻击 TCP RST攻击 TCP会话劫持攻击。 三、学习中遇到的问题及解决 四、实践总结 五、参考资料 一、实践内容 TCP/IP网络协议栈攻击概述 网络安全属性(CIA) 机密性(C):保一般基于加密算法,来保证网络中的信息是被授权使用。 完整性(I):信息在存储使用的过程中保持不被修改,不被破坏。 可用性(A):当信息被需要时,能够正常的存取和访问, 真实性(A):确保通信对方是它所声称的真实实体。

20199112 2019-2020-2 《网络攻防实践》第5周作业

爱⌒轻易说出口 提交于 2020-03-31 04:44:29
目录 内容总结及实践过程 网络安全属性 网络攻击基本模式 网络接口层 互联层 传输层 应用层 IP 源地址欺骗 ARP 欺骗 ICMP 路由重定向攻击 TCP RST 攻击 TCP 会话劫持攻击 UDP Flood 拒绝服务攻击 实践作业 ARP 缓存欺骗攻击 ICMP 重定向攻击 SYN Flood 攻击 TCP RST 攻击 TCP 会话劫持攻击 学习中遇到的问题及解决 实践总结 参考资料 内容总结及实践过程 网络安全属性 名称 内容 机密性 网络中的信息不被非授权实体获取和使用,通常基于加密算法进行保障 完整性 信息未经授权不能进行改变的特性,即信息在存储和传输过程中保待不被修改、不被破坏和丢失的特性 可用性 指被授权实体访问并按需求使用的特性,即当需要时能够正常地存取和访问所需的信息与服务 真实性 确保通信对方是它所声称的真实实体,而非假冒实体 不可抵赖性 是指在通信中确保任何方无法抵赖自己曾经做过的操作的安全特性,包括对自己行为的不可抵赖及对行为发生时间的不可抵赖,有时也被称为不可否认性和可审查性 (Accountability) 网络攻击基本模式 在网络通信中,攻击者可以采取如下四种基本的攻击模式,包括 截获 、 中断 、 篡改 与 伪造 。 截获是一种被动攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反,具体攻击技术为嗅探 (Sniffing)

5.通信协议

南楼画角 提交于 2020-03-30 18:55:14
目的: 为了解决计算机之间如何交流 协议: 约定,就好比我们现在说的是普通话。如果说英语,就有人听不懂了。 网络通信协议: 速率,传输码率,代码结构,传输控制...... 问题: 非常的复杂 太多了,我们就大事化小:分层! TCP/IP协议簇:实际上是一组协议 重要的两个: TCP: 用户传输协议,就像打电话,需要建立连接,通了才能聊天。 UDP: 用户数据包协议,好比发短信,发出去就不管了。 有两个出名的协议:所以才叫TCP/IP协议簇 TCP:用户传输协议 IP:网络互连协议 TCP和UDP对比: TCP:打电话 连接,稳定 三次握手 四次挥手: 1 最少需要3次,保证稳定连接! 2 A:你瞅啥? 3 B:瞅你咋地? 4 A:干一场! 5 6 A:我要断开了! 7 B:我知道你要断开了! 8 B:你真的要断开了吗? 9 A:我真的要走了! 客户端、服务端 传输完成,释放连接,效率低 UDP:发短信 不连接,不稳定 客户端、服务端:没有明确的界限 不管有没有准备好,都可以发给你... DDOS:洪水攻击!就是我给你的电脑上,发一堆的垃圾包,造成端口堵塞,堵住了线路,于是你的网络就炸了。 来源: https://www.cnblogs.com/duanfu/p/12600104.html

20199329 2019-2020-2 《网络攻防实践》第五周作业

戏子无情 提交于 2020-03-30 16:26:07
《网络攻防实践》第五周作业 一、前言 这个作业属于哪个课程: https://edu.cnblogs.com/campus/besti/19attackdefense 这个作业的要求在哪里: https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 我在这个课程的目标是:学习网络攻防相关知识,提升专业技能 这个作业在哪个具体方面帮助我实现目标:学习TCP/IP网络协议攻击的原理和实践 二、知识点总结 1.网络协议攻击及其基本概念 学习网络安全、信息安全首先应当铭记心中的是五大安全属性:机密性,完整性,可用性、真实性和不可抵赖性。我们所有的攻击或者防守都是围绕这五大安全属性来展开的。那么作为攻击方来说,通常有以下几种攻击模式: 截获:以嗅探与监听技术为基础的被动攻击模式,获取网络通信双方的通信信息内容。 中断:以拒绝服务技术为基础的主动攻击模式,使网络通信和会话无法进行。 伪造:以欺骗为基础的主动攻击模式,假冒网络通信方的身份,欺骗通信对方达到恶意目的。 篡改:包括数据包篡改,中间人攻等技术的击主动攻击模式,网络通信工程的信息内容进行篡改,使得通信一方或双方接收到虚假消息。 但是作为一个攻击者,我们还缺少了安全缺陷,有了安全缺陷,我们才可以实施攻击。通常有以下几种TCP/IP网络协议栈安全缺陷与攻击技术:

TCP连接之报文首部

大憨熊 提交于 2020-03-30 16:06:38
在面试时,会经常被问到TCP报文的一些细节,可以说TCP报文是不少企业用来考察面试者对网络的掌握程度的一道题目。 TCP连接作为网络传输的一个环节,是不可或缺的一部分。例如,OSI七层模型的应用层HTTP就是基于TCP连接实现的。 TCP连接的三次握手和四次挥手机制相信是每个后台开发人员耳熟能详的知识点,那么关于TCP的报文细节以及背后的原理是怎么样的呢?TCP是怎样借助报文来实现三次握手和四次挥手呢?笔者通过阅读书本和加上自己的理解。通过本文,来谈谈TCP报文首部以及报文首部背后的原理。 首先先粘上一张TCP报文图 好了,下面介绍一些基础的内容 TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段,一个TCP报文段分首部和数据两部分,其中很关键的就是TCP的报文头,TCP的全部功能都体现在首部中的各个字段中。 TCP报文段首部的前20个字节(上图有标识)是固定的,后面有4n字节(如果有选项最少为4字节)是根据需要添加的选项,所以TCP首部的最小长度是20字节。 1. 源端口号和目的端口号: 各2个字节,分别写入源端口号和目的端口号。端口就是我们熟悉的65536个套接字的端口号,显然,源端口号和目的端口号跟TCP的分用功能有着密切的关系,不同的应用使用不同的端口号,这样就可以互不干扰。而通信的双方的端口号必须相同,才能保证这一条通道是连接畅通的。 2.序列号(32位)

TCP/IP 协议栈初识

白昼怎懂夜的黑 提交于 2020-03-30 14:02:42
原文: 深入浅出 TCP/IP 协议栈 0. 简介   TCP/IP 协议栈是网络通信中一系列网络协议的综合,是核心骨架。它定义了电子设备接入因特网、以及数据在它们之间的传输方式,是一份标准。TCP/IP 协议采用 4 层结构,分别是 应用层、传输层、网络层和链路层 ,每一层都呼叫它的下一层所提供的协议来完成自己的需求。我们大部分的工作是在看得见摸得着的应用层上,所以下层的事情不用太操心;其次网络协议本身是体系复杂庞大,想要精通需要花费大量时间经历,但这不妨碍简单探索一下 一个主机上的数据要经过哪些过程才能发送到对方的主机上 。 0.5 物理介质   物理介质的重要性不言而喻,就是通过光纤、双绞线、无线电波等物理手段把电脑连接起来,电信号(0和1)在其中传输。物理介质的不同决定了电信号的出传输带宽、速率、传输距离以及抗干扰性等等。   TCP/IP 协议栈分为四层,每一层都由特定的协议与对方进行通信,协议之间的通信最终会被转化成 0、1电信号通过物理介质传输才能到达对方电脑。   下图是一张 TCP/IP 协议的基本框架:   每当通过 http 发起一个请求的时候,应用层、传输层、网络层和链路层的相关协议依次对该请求进行包装并携带对应的 首部 ,最终在链路层生成 以太网数据包 ,以太网数据包通过物理介质传输给对方主机,对方接收到数据包以后,然后再一层一层采用对应的协议进行拆包

[TCP IP详解:学习笔记]IGMP:Internet组管理协议

妖精的绣舞 提交于 2020-03-30 13:44:17
Internet组管理协议(IGMP),它让一个物理网络上的所有系统知道主机当前所在的多播组。多播路由器需要这些信息以便知道多播数据报应该向那些端口转发。IGMP在RFC 1112中定义。 IGMP有固定的报文长度,没有可选数据。IGMP报文在IP首部中协议字段为2来指明。 图1显示了长度为8字节的IGMP报文格式。 图1 IGMP报文的字段格式 IGMP类型为1说明是有多播路由器发出的查询报文,为2说明是主机发出的报告报文。组类型为D类IP地址。在查询报文中中组类型设置为0,在报告报文中组地址为要参加的组地址。 IGMP报告和查询 : 多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况,使用规则如下(): 当第一个进程加入一个组时,主机就发送一个IGMP报告。如果一个主机的多个进程加入同一组,只发送一个IGMP报告。这个报告被发送到进程加入组所在的同一接口上; 进程离开一个组时,主机不发送IGMP报告,即便是组中的最后一个进程离开。主机知道组中已不再有组成员时,在随后收到的IGMP查询中就不在发送报告报文; 多播路由器定时发送IGMP查询报文来了解是否还有任何主机包含属于多播组的进程; 主机通过发送IGMP报告来响应一个IGMP查询。   图2显示两个IGMP报文,一个是主机发送的报告,另一个是路由器发送的查询

计算机网络面试题(三)

假如想象 提交于 2020-03-30 13:42:41
计算机网络之传输层 ● 请你说明一下,TCP协议的4次握手。 考察点:TCP协议 参考回答: 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。 (1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。 (2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。 (3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。 (4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。 ● 谈一下,为什么tcp为什么要建立连接? 考察点:TCP 参考回答: 保证可靠传输。 ● 请你解释一下TCP为什么可靠一些 考察点:TCP 参考回答: 三次握手,超时重传,滑动窗口,拥塞控制。 ● 请说明一下哪种应用场景会使用TCP协议,使用它的意义 考察点:TCP协议 参考回答:

Java网络编程三--基于TCP协议的网络编程

让人想犯罪 __ 提交于 2020-03-30 12:07:48
ServerSocket对象用于监听来自客户端的Socket连接,如果没有连接,它将一直处于等待状体   Socket accept():如果接收到客户端的连接请求,该方法返回一个与客户端对应Socket对象,否则该方法将一直处于等待状态,线程也被阻塞   提供了三个构造器:     ServerSocket(int port):监听port端口(端口号指定大于1024)     ServerSocket(int port , int backblog):????????????backlog有啥用还没查???????????     ServerSocket(int port , int backblog, InetAddress localAddr):将serversocket绑定到指定IP的地址(当机器存在多个IP地址时) Socket   Socket(InetAddress/String remoteAddress, int port, InetAddress localAddr, int localPort):创建连接到远程主机,端口的连接,并制定本机的IP地址和端口(适用于本机有多个IP地址)   Socket(InetAddress/String remoteAddress, int port):创建连接到远程主机,端口好的Socket,使用本机默认的ip地址