分类目录归档:文档

OSI七层协议模型、TCP/IP四层模型

1. OSI七层和TCP/IP四层的关系

1.1 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。

1.2 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。

1.3 OSI是一种理论下的模型,而TCP/IP已被广泛使用,成为网络互联事实上的标准。

TCP:transmission control protocol 传输控制协议

UDP:user data protocol 用户数据报协议

 

OSI七层网络模型

TCP/IP四层概念模型

对应网络协议

应用层(Application) 应用层 HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示层(Presentation) Telnet, Rlogin, SNMP, Gopher
会话层(Session) SMTP, DNS
传输层(Transport) 传输层 TCP, UDP
网络层(Network) 网络层 IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层(Data Link) 数据链路层 FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层(Physical) IEEE 802.1A, IEEE 802.2到IEEE 802.11

 

 

2. OSI七层协议模型

七层结构记忆方法:应、表、会、传、网、数、物

应用层协议需要掌握的是:HTTP(Hyper text transfer protocol)、FTP(file transfer protocol)、SMTP(simple mail transfer rotocol)、POP3(post office protocol 3)、IMAP4(Internet mail access protocol)

 

3. TCP/IP四层模型

3.1 应用层:对应OSI中的应用层、表示层、会话层

3.2 物理链路层:对应OSI中的数据链路层、物理层(也有叫网络接口层)

3.3 数据包说明:

IP层传输单位是IP分组,属于点到点的传输;TCP层传输单位是TCP段,属于端到端的传输

 

jsch channel exec Java命令失败

第二次碰到这个问题了,第一次是用jsch远程启动一个脚本,脚本中的java命令始终无法使用

这次是执行jps命令返回结果为空字符串,而secureCRT执行jps可以看见java进程。

  1. channel = session.openChannel(“exec”);
  2. ((ChannelExec) channel).setCommand(command);

最终改为

  1. final static public String importJavaProfile = “source /etc/profile;source ~/.bash_profile;source ~/.bashrc;”;
  1. sshHelperSend.execCmd(JmeterUtil.importJavaProfile + “jps”)

 

即引入环境变量文件,使java得以识别

部分页面f12导致ie浏览器崩溃

最近一个项目,客户要求是ie浏览器。所以开发就在ie上,免不了js等的调试,但是f12,ie就提示运行停止了,然后恢复了页面。

找了很久,没找到问题。想着将就着在chrome上调试吧,但是部分兼容性问题,必须在ie上调试啊。无赖,下定决心找一下ie究竟有什么问题。

几经折腾,我把项目的页面都精简了,就只有一个简单的页面,f12,没有问题了。嵌套个iframe,里面加载项目的页面,f12,崩溃。加载baidu,f12,没有问题。。。

google一下,找到个关键的,说是js重复引用,就会导致f12崩溃。

检查一下,我们项目没有重复引用。但是有个问题,我们项目是采用 sitemesh框架页面,每个被sitemesh的都会在head里面添加js的引用。

我感觉就是这的问题了,联想到ie的缓存。

赶紧在每个js和css后面加个动态参数。

f12,ok!!!

jenkinshudson email163邮箱和26邮箱成功配置总结

system admin e-mail address  这里设置要和发件人邮箱保持一致。

1.如果不保持一致报错如下图所示:

 

 

 

2.邮件保持一致的配置如下图所示:

 

 

 

 

 

3.如果smtp服务器开发配置不正确会报如下错误

比如163的邮箱配置成126的服务器开发smtp.126.com,那么将会报错。

如下图所示,将邮箱改为126也测试成功了。

 

 

 4.javax.mail.authenticationfailedexception: 535 error: authentication failed  

    535的错误是由于密码错误

jenkins docker镜像遇到的volume权限问题

image 在挂在数据卷的时候遇到了权限问题,如下, docker启动命令

docker run -d -v /root/jenkins:/var/jenkins_home -P --name jenkins-server jenkins

这个命令看似没有什么问题,但容器就是启动不起来,执行docker ps -a,查看container,如下,

[root@esslog-shqs-6 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
274d92964edb        jenkins             "/bin/tini -- /usr/lo"   2 minutes ago       Exited (1) 2 minutes ago                       jenkins-server

接着执行docker logs jenkins-server查看container日志,如下

Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied

日志中出现了一个Permission denied错误,,以我目前的功力还不清楚是什么问题造成的,但是在谈谈Docker Volume 之权限管理持续集成(Continuous integration)两篇博客中找到了答案,在执行docker run命令的时候增加一个-u参数,如下改进后的命令,

docker run -d -v /root/jenkins:/var/jenkins_home -u 0 -P --name jenkins-server jenkins

这命令的意思是覆盖容器中内置的帐号,该用外部传入,这里传入0代表的是root帐号Id。这样再启动的时候就应该没问题了。 如果按照上面做还是出现Permission denied错误,那么可以检查一下selinux状态,开启的情况下会导致一些服务安装、使用不成功。 查看selinux状态,

[root@localhost ~]# sestatus  
SELinux status:                 enabled  
SELinuxfs mount:                /sys/fs/selinux  
SELinux root directory:         /etc/selinux  
Loaded policy name:             targeted  
Current mode:                   enforcing  
Mode from config file:          enforcing  
Policy MLS status:              enabled  
Policy deny_unknown status:     allowed  
Max kernel policy version:      28

临时关闭,

[root@localhost ~]# setenforce 0

永久关闭,可以修改配置文件/etc/selinux/config,将其中SELINUX设置为disabled,如下,

[root@localhost ~]# cat /etc/selinux/config   

# This file controls the state of SELinux on the system.  
# SELINUX= can take one of these three values:  
#     enforcing - SELinux security policy is enforced.  
#     permissive - SELinux prints warnings instead of enforcing.  
#     disabled - No SELinux policy is loaded.  
#SELINUX=enforcing  
SELINUX=disabled  
# SELINUXTYPE= can take one of three two values:  
#     targeted - Targeted processes are protected,  
#     minimum - Modification of targeted policy. Only selected processes are protected.   
#     mls - Multi Level Security protection.  
SELINUXTYPE=targeted

[root@rdo ~]# sestatus  
SELinux status:                 disabled