- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 TCP/IP详解笔记(9)
TFTP简单文本传输协议和BOOTP引导程序协议TFTP协议TFTP主要使用UDP协议,当需要将程序或文件同时向许多机器下载时就需要TFTP。或者当无盘系统工作时先广播一TFTP请求,网络上的TFTP服务器就会发送响应,其中包含可执行的程序,依靠这个无盘系统来执行程序。同时为了允许多个客户并发的进行系统引导,TFTP通过为每个客户分配一个端口号来实现并发。TFTP协
2015-04-06 13:46:59
764
1
原创 TCP/IP详解笔记(8)
广播、多播 IGMP协议 DNS协议单播是指两台主机的点对点,广播和多播则是一对多。广播和多播仅用于UDP 广播:四种广播地址:受限的广播:255.255.255.255 改地址用于主机配置过程中IP数据报的目的地址。指向网络的广播:A类网络广播地址为neid.255.255.255 neid为A类网络的网络号。指向子网的广播:主机号全为1且有特定子网号的地址。例如
2015-04-06 13:12:28
1025
原创 TCP/IP详解笔记(7)
UDP:用户数据报协议UDP将应用层发的数据加上首部进行封装,提供不可靠的的服务。UDP首部:UDP首部包含2字节的源端口和目的端口,16位的UDP长度则代表UDP数据报的长度(包含UDP首部)所以该值最小为8个字节,数据为空。 UDP检验和: 首部中需要注意的是UDP的检验和和之前IP、ICMP的检验和是类似但是是有区别的,UDP数据报可
2015-03-30 08:30:57
813
原创 TCP/IP详解笔记(6)
IP选路与路由选择协议:我们知道路由器将不同的子网连接起来组成Internet,而一个路由器有多个接口,当收到一个数据报时发向哪个接口则需要选路协议。 选路原理:(1)优先匹配主机号(2)再匹配网络号(3)最后是默认表项(默认网关) 我们可以通过netstat命令查看路由表项:第一行表示:如果我到目的地是default的话我应该走192.16
2015-03-26 11:39:21
590
1
原创 TCP/IP详解笔记(4)
ARP:地址解析协议和RARP:逆地址解析协议:ARP: 在链路层封装的首部存在目的硬件地址,但是我们只知道IP地址,,而以太网驱动程序需要知道目的端的硬件地址才能发送数据,而ARP协议可以得到IP地址与目的硬件地址的映射。ARP协议的工作流程:键入命令ftp 主机名的过程:(1)通过解析器(DNS系统)得到主机名对应的IP地址(2)FTP客
2015-03-09 19:38:57
612
原创 TCP/IP详解笔记(3)
IP协议:IP是TCP/IP里非常重要的协议,我们发送的TCP UDP ICMP IGMP等数据都要经过IP层的封装后才能进行传输。IP协议提供不可靠的 无连接的服务。不可靠表现在:它不保证数据报一定发送到目的端,如果在半路上出现错误,IP协议会将数据报丢掉并发送ICMP差错报文(后面会讲)告诉发送端,可靠性由上层提供(TCP)。无连接表现在:它讲数据报发送出去后 就不在和其有任何连接
2015-02-28 16:14:50
758
原创 TCP/IP详解笔记(2)
链路层相关协议 :以太网封装 SLIP协议 CSLIP协议 PPP协议可以从图中看出链路层的三个目的:(1)为IP模块发送和接收数据报(2)为ARP模块发送ARP请求和ARP应答(3)为RARP发送RARP请求和接收RARP应答以太网和IEEE封装图上面的是IEEE的封装 下面的是以太网的封装,我们主要看下面的:链路层将来自上层的数据报封装
2015-02-27 15:57:21
1192
原创 TCP/IP详解笔记(1)
这里是《TCP/IP详解》卷一的一些笔记以及自己对书中的理解,我会结合抓包软件Wireshark来分析,但由于条件有限,无法模拟出书中作者的网络,只能简单的分析,如果发现错误,请帮忙指正。 首先我们讲什么是TCP/IP协议: 两台主机要通信必须遵循相同的规范,对互相发送的报文要知道该如何处理,就像发送XML和JSON数据一样,他们需要按照预先规定的格式组织进行发送,而接收端
2015-02-27 11:25:09
1062
原创 图(邻接表)
/** * 文件名:Graph.java * 时间:2014年11月13日下午4:51:12 * 作者:修维康 */package chapter9;import java.util.*;/** * 类名:Graph 说明: */class Vertex { public AnyType value; public int indegree = 0;// 顶点的入度,拓
2014-11-17 17:56:56
874
转载 很特别的一个动态规划入门教程
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出,谢谢! ----第一节----初识动态规
2014-11-13 09:50:10
599
原创 最小堆和最大堆的JAVA实现
/** * 文件名:BinaryHeap.java * 时间:2014年11月3日下午7:15:34 * 作者:修维康 */package chapter6;import java.util.*;/** * 类名:BinaryHeap 说明:建立一个最小堆 */class MinHeap> { private int currentSize; private stati
2014-11-04 16:37:49
7417
原创 找到一个单词的所有相似单词
相似单词为 只差一位字母的单词,练习Map容器package chapter4;import java.util.*;import java.util.Map.Entry;/* * 说明:找到一个单词的所有相似单词 例如: wine 和 dine wind 和wing 只有一个字母不同 */public class TreeMapTest { /* * 判断2个单词是否
2014-10-30 20:26:37
3169
原创 会场安排问题(贪心策略)
会场安排问题问题描述:假设要在足够多的会场里安排一批活动,活动的开始时间和结束时间已知,并希望使用尽可能少的会场。设计一个有效的算法进行安排。分析:这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,就对应要找的最小会场数。 图的最少着色问题,至今没有有效的算法,但这个问题和图的着色问题有不同,活动的时间区间之
2014-10-28 18:47:55
3957
3
转载 Splay Tree(伸展树)
二叉查找树(Binary Search Tree)能够支持多种动态集合操作。因此,在信息学竞赛中,二叉排序树起着非常重要的作用,它可以被用来表示有序集合、建立索引或优先队列等。作用于二叉查找树上的基本操作的时间是与树的高度成正比的。对一个含n各节点的完全二叉树,这些操作的最坏情况运行时间为O(log n)。但如果树是含n个节点的线性链,则这些操作的最坏情况运行时间为O(n)。而有些二叉查找
2014-10-26 11:03:45
584
转载 AVL树的旋转操作 图解 最详细
各大教课书上讲的都是左旋与右旋,其实这样很容易理解错误,我们换一种叫法。我们称呼左旋为:逆进针旋转。我们称呼右旋为:顺进针旋转。老规矩,直接上图。如果再看不懂AVL树的旋转,我就无能为力了。。。如果图中有错误,欢迎指正。
2014-10-24 17:48:48
481
转载 用递归颠倒一个栈
题目:用递归颠倒一个栈。例如输入栈{1, 2, 3, 4, 5},1在栈顶。颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶。分析:乍一看到这道题目,第一反应是把栈里的所有元素逐一pop出来,放到一个数组里,然后在数组里颠倒所有元素,最后把数组中的所有元素逐一push进入栈。这时栈也就颠倒过来了。颠倒一个数组是一件很容易的事情。不过这种思路需要显示分配一个长度为O(n)的数组,
2014-10-24 08:58:53
1136
原创 数据结构与算法分析(JAVA版)Chapter1练习题
/** * 类名:Test1.java * 说明:返回N的二进制的1个个数 */public class Test5 { public static int getOne(int n){ if(n < 2) return 1; return n%2 + getOne(n/2); } /** * 函数名称:main * 说明: */ public stat
2014-10-16 09:38:57
796
原创 递归分治求全排列
/** * 类名:Test6.java * 说明:全排列 */public class Test6 {public static void perm(Type[] a){perm(a,0,a.length-1);}private static void perm(Type[]a, int low,int high){if(low == high){
2014-10-15 21:25:28
652
原创 几种查找算法
/** * 类名:SearchTest.java * 说明: 几种查找方法 */public class SearchTest { /** * 函数名称:binarySearch * 说明:二分查找 时间复杂度O(logN) */ public static > int binarySearch(Type[] a,Type x){ int low = 0;int
2014-10-15 15:42:21
403
转载 从Decorator,Adapter模式看Java/IO库
讲到Decorator模式的时候,不能不提到它的实际应用--在Java/IO库里面的应用,>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字跟图片是来自>这本书。
2014-09-29 18:17:06
575
原创 插入排序
//插入排序,稳定, 时间复杂度为O(n^2)import java.util.Arrays;public class InsertSortTest { /*public static void InsertSort(int[] a){//非降序 int j; for(int i = 1;i < a.length;i++ ){ int temp = a[i]; fo
2014-09-26 08:47:36
392
转载 碎片Fragment完全解析fragment_main.xml/activity_main.xml
为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像 Activity一样包含布局。Fragment通常是嵌套在Activity中使用的,现在想象这种场景:有两个 Fragment,Fragment 1包含了一个ListView,每行显示一本书的标题。Fragment 2包含了TextView和 ImageView,来
2014-06-04 15:54:26
773
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人