计算机网络-TCP/IP总结

OSI7层与TCP/IP4层

![总结](/images/OSI&TCPIP.png)

TCP协议:

一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元([1] MTU)的限制)。
之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体[1] 的TCP层。
TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。
然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。
TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

Read More

svn常用概念总结

原理是这样的 svn服务器一般放在公共的服务器上,大家连这个服务器,在Eclipse上使用svn控件 可以下载svn上的项目至本地,所以很多公司将开发要用到的软件都放在svn上,有同事来只要连上svn 就可以把需要的东西下下来了

  • 更新是指 服务器上变动了的 而你本地没有变动,需要你更新, update更新
  • 提交是指 服务器上没有的,也就是你改过的东西,你需要将代码提交,其他同事更新你的代码 commit 提交

同步,是在更新提交之前做的工作,更新提交前先同步,可以知道哪些东西要提交哪些东西要更新,哪些东西是冲突的(你和同事 改了同一个文件,可能会出现冲突),出现冲突不能提交也不能更新,只有先将冲突的文件选择用本地的文件覆盖或用服务器的文件覆盖本地后才能更新或提交,具体的用法还需要楼主多实践,这东西用过一次就会了 上面术语在MyEclipse里的选项是

  1. 同步:synchronize with repository (如果你的项目连了svn 右键你的项目 team…就能看到) 点击同步后会进入到synchronize 的界面 再右键项目就有
  1. Mark as mergerd (冲突时点它 冲突的文件会用本地的覆盖服务器的,意思就是说 用你的!)
  2. override and update (冲突时 右键文件 选此项表示 用服务器的!)

Linux(CentOS) Wget安装配置 [用户] Oracle JDK

背景:
开发机上的系统JDK是1.6的,由于项目需要1.7,故决定下载一个jdk7,并配置到用户环境变量中;
尝试直接用wget从官网上下,结果下来都是一个几k的文件,应该是oracle上的防盗链,也就是用图形界面要先点accept;
用本地Windows下载好之后通过rz传上去,结果最近网络有点问题,很慢,还经常一半停下来,,

网上搜了一下
基于wget重定向,可以带一些cookie欺骗orcle,
一般都说的加上

--no-cookie --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F"

Read More

Java 泛型参数 向上转型

根据现在的了解,java泛型默认是不支持向上转型的,但是可以通过泛型参数实现向上转型

List<List<Integer>> re = new ArrayList<ArrayList<Integer>>();//这样编译通过 类型不匹配,无法转型

List<? extends List<Integer>> re = new ArrayList<ArrayList<Integer>>();//但是这样就可以,因为添加了泛型参数,任何继承List的类都没有问题