'학습자료/네트워크'에 해당되는 글 9건

  1. 2014.05.21 :: [리눅스] route delete
  2. 2013.11.06 :: 스위치 콘솔 연결(시리얼 포트 연결)
  3. 2013.11.06 :: vlan 설정(ubuntu)
  4. 2013.06.17 :: MTU, MSS [펌]
  5. 2013.02.27 :: zero-copy[펌]
  6. 2013.02.13 :: netstat 명령어 사용법 - 펌
  7. 2013.02.12 :: zero configuration networking 1
  8. 2012.01.17 :: 네트워크 클래스 서브넷 마스크
  9. 2012.01.16 :: SSL(Secure Sockets Layer)
학습자료/네트워크 2014. 5. 21. 16:34

sudo ip route del 192.168.0.0/22 dev eth2

'학습자료 > 네트워크' 카테고리의 다른 글

스위치 콘솔 연결(시리얼 포트 연결)  (0) 2013.11.06
vlan 설정(ubuntu)  (0) 2013.11.06
MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
posted by cozyboy
:
학습자료/네트워크 2013. 11. 6. 10:36

putty 의 기본설정으로 스위치 콘솔이 연결 되지 않을 떄가 있다.  장치 관리자에서 포트의 설정을 바꾸어 사용하면 된다.


1. 장치 관리자 -> 포트(COM & LPT) -> COM3 


2. 포트 설정

Baud rate : 9600

data bits : 8

stop bit : 1

parity none

flow control xon/xoff 


3. putty로 스위치 콘솔 접속


'학습자료 > 네트워크' 카테고리의 다른 글

[리눅스] route delete  (0) 2014.05.21
vlan 설정(ubuntu)  (0) 2013.11.06
MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
posted by cozyboy
:
학습자료/네트워크 2013. 11. 6. 09:57

1. 설치

$sudo apt-get update

$sudo apt-get install vlan


2. 설정

$ vconfig add eth0 10    (vlan id 10을 위한 새로운 인터페이스 생성)

$ vi /etc/network/interfaces    (주소 할당)

auto eth0.10              #자동으로 eth0.10을 up 시키기

#iface eth0.10 inet dhcp

iface eth0.10 inet static

address {ip}

netmask {net mask}

vlan-raw-device eth0   #vlan에서 사용하는 물리 인터페이스는 eth0

 

$ service networking restart




개념

Vlan 이란 Virtual Local Area Network 의 약자로 물리적 배치와 상관없이 논리적으로 LAN을 구성할 수 있는 기술이다.

예를 들자, 집에 2개의 스위치가 있고 2개의 스위치가 각각의 컴퓨터들을 연결했다고하자. 이 2개의 스위치는 서로 연결되지 않았다고하자. 그럼 2개의 스위치의 컴퓨터들은 서로 통신할 방법이 없다. 이것이 물리적 lan 환경이다. 물리적으로 서로를 떨어트려 독립적인 네트워크를 구성한 것이다.

VLAN 은 이런 물리적 네트워크 구성이 아닌 논리적 네트워크 구성을 가능케한다. 하나의 스위치가 있고 이 스위치에는 포트가 1~10 까지 있다고 하자. 1~5 를 VLAN 1 로 6~10을 VLAN 2 로 설정했다면 물리적으로 같은 스위치에 존재해도 VLAN 1과 VLAN 2는 서로 통신하지 못한다.

스위치의 모든 인터페이스는 동일 브로드캐스트 도메인에 포함되어 있으나 VLAN을 적용할 경우 스위치의 일부 인터페이스를 하나의 브로드캐스트 도메인으로 구성하고, 다른 인터페이스를 또다른 브로드캐스트 도메인으로 구성하여 여러 개의 도메인을 만들수 있습니다. 이렇게 스위치에 의해 논리적으로 만들어진 브로드 캐스트 도메인을 VLAN이라고 합니다.







vlan 개념, 장점, 구성 : http://piaoguangyuan.wordpress.com/2013/09/25/vlan-%EA%B0%9C%EB%85%90-%EC%9E%A5%EC%A0%90-%EA%B5%AC%EC%84%B1/

* vlan 개념 정리 : http://helpboy.tistory.com/entry/%ED%8D%BC%EC%98%A8%EA%B8%80-VLAN-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC


'학습자료 > 네트워크' 카테고리의 다른 글

[리눅스] route delete  (0) 2014.05.21
스위치 콘솔 연결(시리얼 포트 연결)  (0) 2013.11.06
MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
posted by cozyboy
:
학습자료/네트워크 2013. 6. 17. 15:32

MTU (Maximum Transmission Unit)

1. MTU(Maximum Transmission Unit)이란…

MTU란 TCP/IP네트웍 등과 같이 패킷 또는 프레임 기반의 네트웍에서 전송될 수 있는 최대 크기의 패킷 또는 프레임을 말합니다.

한번에 전송할 수 있는 최대 전송량(Byte)인 MTU 값은 매체에 따라 달라집니다.

예를 들어 Ethernet 환경이라면 MTU default 값은 1500 이고 FDDI 인 경우 FDDI는 4000 정도 되고, X.25는 576, Gigabit MTU는 9000 정도 등 매체 특성에 따라 한번에 전송량이 결정됩니다.

2. ADSL에서의 MTU값

ADSL은 PPPOE와 PPPOA를 사용합니다. 외장형모뎀과 PC Lan 카드를 사용하는 형태는 PPPOE(PPP over Ethernet)라고 합니다.

PC에서 만들어진 Ethernet frame 이 ADSL serial 구간을 그냥 통과하지 못하기 때문에 이더넷 Frame 안에 PPP frame을 포함해서 전송하기 때문에 1500 보단 작아야 합니다.

참고로 접속프로그램중 Winpoet은 MTU를 1420으로 설정하고 Ethernet 프로그램은 MTU를 1416 정도로 설정합니다.

<일반적인 Ethernt 에서의 TCP/IP 패킷 >

Ethernet Header

IP Header

TCP Header

Data

< PPPOE 에서의 TCP/IP 패킷 >

Ethernet Header

PPPoE Header

IP Header

TCP Header

Data

3. MTU값 계산

MTU는 Ethernet Frame을 제외한 IP datagram 의 최대 크기를 의미합니다.

MTU 가 1500 이라고 할 때 IP Header의 크기 20 byte 와 TCP Header의 크기 20byte를 제외하면 실제 사용자 data는 최대 1460까지 하나의 패킷으로 전송될 수 있습니다.

Windows 계열에서는 PC의 기본 MTU가 1500으로 설정되어 있습니다. 레지스터리에 특정 값을 적어주지 않으면 자신의 MTU값을 1500으로 설정됩니다. 그러나 Win2000부터 Media의 특성을 인식하여 dynamic하게 MTU를 설정됩니댜.

4. MTU값 조정

Unix, Linux 계열에서는 ifconfig 명령어로 쉽게 변경할 수 있습니다.

) ifconfig hme0 mtu 1400

ifconfig eth0 mtu 1300

Windows 계열은 레지스터리를 수정하면 되며 OS 버전에 따라 설정값이 달라집니다.

MSS (Maximum Segment Size)

MSS Maximum Segment Size의 약어로 TCP상( TCP/UDP 가 아니라 그냥 TCP입니다 )에서의 전송할 수 있는 사용자 데이타의 최대크기입니다.

MSS 값은 기본적으로 설정된 MTU 값에 의해 결정됩니다.

MSS= MTU-(IP header크기) - (TCP header크기)

그러므로 Ethernet 일 경우, MTU 1500에 IP 헤더크기 20byte TCP 헤더 크기 20byte를 제외하면 1460 이 MSS 값으로 됩니다.

TCP로 통신할 때는 통신 양단간에 서로 MSS값을 주고 받습니다.

TCP는 3-way 핸드쉐이킹으로 session을 establish 하며 이 과정 중에 상대방에게 자신의 MSS 값을 알려 주게 됩니다.

< 3-way Hand shaking 과정 >

Client Server
< SYN, MSS=1380 >
( MTU 1420 ) -------------------------------------> ( MTU 1500 )
< SYN,ACK, MSS=1460>

<-------------------------------------
< ACK >

------------------------------------->

위의 그림처럼 Client 의 MTU 가 1420 이고 Server 의 MTU가 1500 라고 가정할때 클라이언트가 초기 TCP 세션을 성립하기 위해 Syn패킷을 서버로 보낼때 TCP Header의 option 필드에 MSS값을 설정하여 서버로 전달합니다.

그러면 서버는 SYN, ACK 를 보내면서 역시 TCP 헤더 옵션에 자신의 MSS 값을 보냅니다. 그러면 세션이 성립되어 패킷을 전달할때 실제 단위 패킷의 사이즈가 1420을 초과하지 않게 패킷을 나누어서 전송하게 됩니다.

서버는 자신의 MTU가 1500 이라고 해서 패킷을 1500 단위로 나누지 않습니다. 만약 패킷을 1500 크기로 보내면 client에서는 자신의 용량을 초과하기 때문에 데이타를 수신할 수 없게 됩니다.

 

 

'학습자료 > 네트워크' 카테고리의 다른 글

스위치 콘솔 연결(시리얼 포트 연결)  (0) 2013.11.06
vlan 설정(ubuntu)  (0) 2013.11.06
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
zero configuration networking  (1) 2013.02.12
posted by cozyboy
:
학습자료/네트워크 2013. 2. 27. 14:55

디스크 <-> 커널 메모리 <-> 유저 메모리 <-> NIC 사이에는 많은 데이타 copy와 context switching(커널 <-> 유저)이 발생한다. 이러한 문제를 해결하고자 나온것이 바로 zero-copy 개념이며, zero-copy를 구현한 것이 바로 sendfile() 이라는 함수라고 할 수 있겠다.

그렇다면 얼마나 많은 copy와 context switching이 발생하길래...zero-copy라는 개념이 등장했는지...

example 1) file에서 data를 read하고, network세상으로 write하는 과정을 아래에서 확인해 보자.

read(file, tmp_buf, len);
write(socket, tmp_buf, len);

( Zero Copy I: User-Mode Perspective By Dragan Stancevic 에서 가져옴 )

4번의 context switching이 발생하고, 4번의 data copy(디스크->커널메모리->유저메모리->커널메모리->NIC)가 발생한다.

그렇다면, zero-copy를 구현해놨다는 sendfile()을 호출할 경우에는 몇번의 context switching과 copy가 발생할까?

example 2) file에서 data를 read하고, network세상으로 write하는 과정을 아래에서 확인해 보자.

sendfile(socket, file, len);


( Zero Copy I: User-Mode Perspective By Dragan Stancevic 에서 가져옴 )

2번의 context switching과 2번의 data copy(디스크->커널메모리->NIC)가 발생함을 확인할 수 있다.

단, zero-copy를 사용하기 위해서는 NIC에 특별한 하드웨어 기능(scatter-gather DMA)이 지원되어야만 동작할 수 있다는 것을 기억하도록 하자.

이외에 "Zero Copy I: User-Mode Perspective By Dragan Stancevic"의 글에서는 mmap을 이용하여 context switching과 data copy의 횟수를 줄이는 방법도 소개하고있다. (시그널 처리에 대한 것도 눈여겨 보고 기억해두어야 할 것!!)

zero-copy에 대해서 짧게 정리해 보았다. 개인적으로 나와 같은 개발자는 이정도만 알아 두어도 어디가서 창피당하지는 않을듯하다..^^

그렇다면 모 회사에 면접을 보러갔을때 나의 상황에 맞추어 다시 한번 생각해보면...

기본적으로 zero-copy는 file - to - file 또는 file - to - socket 사이의 data 전송을 위해 만들어 졌으므로 내가 개발했던 게이트웨이 데몬 처럼 socket - to - socket 사이의 data 전송을 주로 사용하는 환경에서 zero-copy기능은 의미가 없을것으로 판단된다.

고로 면접관의 생각 역시 오류가 있었다고 판단된다.

그렇다면 나의 답변은...

나는 커널레벨에서 데몬을 작성하여 read 또는 write 할 경우 유저 레벨에서 동작하는 데몬보다는 copy가 덜 발생 할 것이라고 생각했다.

즉, socket buffer <-> 커널 메모리 ("123456789" 라는 data를 socket buffer에서 -> 커널로 read)

그러나 유저 레벨에서는 socket buffer <-> 커널 메모리 <-> 유저 메모리("123456789"라는 data를 socket buffer에서 -> 커널로 , 그리고 다시 유저로)

하지만... 커널에서 역시 read 또는 write를 호출하며, 유저에서 호출하는 read 또는 write와 동일한 것으로(유저의 read를 추적해 보면 마지막에는 결국 커널에서 호출하는 read와 동일 함)보이며,

이것은 read하여 data를 저장하는 영역(유저 메모리 공간인지 커널 메모리 공간인지의 차이) 차이만이 두개 사이에 존재(커널데몬<->유저데몬)할 지도 모른다는 생각이며, 성능향상은 매우 적을 것(오히려 더 안좋아 질 수도 있다는..)이라고 판단 된다.

T-T 추측성 발언....

PS: 위 사진과 내용은 http://www.linuxjournal.com/article/6345에서 가져왔음을 다시 한번 알려드립니다.

 


무복사 기법을 통한 효율적인 데이터 전송 -

http://www.ibm.com/developerworks/kr/library/j-zerocopy/index.html

 

자바(java)와 리눅스(linux)의 zero copy 기법 - http://knight76.tistory.com/1417

'학습자료 > 네트워크' 카테고리의 다른 글

vlan 설정(ubuntu)  (0) 2013.11.06
MTU, MSS [펌]  (0) 2013.06.17
netstat 명령어 사용법 - 펌  (0) 2013.02.13
zero configuration networking  (1) 2013.02.12
네트워크 클래스 서브넷 마스크  (0) 2012.01.17
posted by cozyboy
:
학습자료/네트워크 2013. 2. 13. 14:59

 

netstat 네트워크 포트(TCP,UDP)상태를 확인함으로써 바이러스나 해킹여부를 진단할 있다.

명령어 : netstat [-a] [-e] [-n] [-s] [-r] [-p proto] [interval]

▶ netstat명령어 옵션 내용

옵션

-a

컴퓨터에서 수신되어 활성화 되어 있는 모든 TCP 및 UDP 포트를 표시

-r

라우팅 테이블 확인 및 Connection 되어 있는 포트번호 확인
(
컴퓨터 이름및 도메인이름으로 화면출력)

-n

현재 다른 PC 연결(Established)되어 있는 포트번호 확인(IP 주소로 화면출력)

-e

랜카드에서 송수신한 패킷의 용량및 종류 확인, -s와 같이 사용

-s

IP, ICMP, TCP, UDP 프로토콜의 상태

Active Connections Display State표시 내용

State

LISTEN

서버의 데몬이 떠서 접속 요청을 기다리는 상태

SYS-SENT

로컬의 클라이언트 어플리케이션이 원격 호스트에 연결을 요청한 상태

SYN_RECEIVED

서버가 원격 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답을 하였지만 아직 클라이언트에게 확인 메시지는 받지 않은 상태

ESTABLISHED

3 Way-Handshaking 완료된 서로 연결된 상태

FIN-WAIT1
CLOSE-WAIT
FIN-WAIT2

서버에서 연결을 종료하기 위해 클라이언트에게 종결을 요청하고 회신을 받아 종료하는 과정의 상태.

CLOSING

흔하지 않지만 주로 확인 메시지가 전송도중 분실된 상태

TIME-WAIT

연결은 종료되었지만 분실되었을지 모를 느린 세그먼트를 위해 당분간 소켓을 열어놓은 상태

CLOSED

완전히 종료된 상태

 

'학습자료 > 네트워크' 카테고리의 다른 글

MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
zero configuration networking  (1) 2013.02.12
네트워크 클래스 서브넷 마스크  (0) 2012.01.17
SSL(Secure Sockets Layer)  (0) 2012.01.16
posted by cozyboy
:
학습자료/네트워크 2013. 2. 12. 19:48

Zero configuration networking

http://en.wikipedia.org/wiki/Zero_configuration_networking#Service_discovery

 

 

dnssd java library를 이용한 테스트 코드와 결과 -

http://cozyboy.tistory.com/entry/네트워크-장비-검색

 


Zeorconf 란?

 

Zero Confiuration Networking으로 DNS 서버 설정이나 IP를 이용하지 않은 networking 즉 DHCP 환경이 없는 네트워크에서 peer to peer 연결이나 Wireless 환경에서 수동설정없이 자동으로 네트워킹 할수 있는 환경을 만들어주는것.

위와 같은 일을 하기위해선 네트워크 장치검색 프로토콜이 필요하다.

 

  • Apple

Apple에서 만든 Zero Configuration Networking 프로토콜로써 IP 네트워크 상에서 컴퓨터, 주변기기 및 서비스를 자동으로 검색하는 서비스로 Bonjour(데스크탑 어플리케이션)가 있다. Bonjour는 DNS based Service Discovery(DNS-SD) 프로토콜을 사용한다.

 

  • windows

windows에선 upnp이 존재한다. 윈도우7의 윈도우 미디어가 DLNA를 적용하였으며, DLNA는 upnp 프로토콜의 SSDP(Simple Service Discovery Protocol) 사용한다.

 

몇년전부터 스마트 티비 대부분 DLNA를 지원했다.

 

 

avahi는 bonjour와 같이 dns-sd이며, 단지 리눅스용으로 만들어졌다. 그래서 bonjour sdk로 avahi를 검색할 수 있다. bonjour로 upnp검색은 불가능하다.

 

avahi(linux), bonjour(apple), upnp(window) 등이 Zeroconf를 구현한 것들로써

위와 관련된 library를 이용하면 네트워크 장치 검색이 가능하다.

 

 

 

 


Bonjour 와 Zeroconf

http://qnibus.com/webtonz/2011/06/24/bonjour-%EC%99%80-zeroconf/

 

DNS Service Discovery http://pic.dhe.ibm.com/infocenter/sprotect/v2r8m0/index.jsp?topic=%2Fcom.ibm.ips.doc%2Fconcepts%2Fgx_gv_zero_configuration.htm

 

 

com.apple.dnssd JavaDoc

https://developer.apple.com/library/mac/documentation/Java/Reference/DNSServiceDiscovery_JavaRef/com/apple/dnssd/DNSSD.html

 

avahi wiki

http://en.wikipedia.org/wiki/Avahi_(software)

 

bonjour wiki

http://en.wikipedia.org/wiki/Bonjour_(software)


DNS-SD From java library 간략 정리

http://elliotth.blogspot.kr/2009/03/registering-service-with-dns-sd-from.html

 

dns-sd 사이트

http://www.dns-sd.org/

'학습자료 > 네트워크' 카테고리의 다른 글

MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
네트워크 클래스 서브넷 마스크  (0) 2012.01.17
SSL(Secure Sockets Layer)  (0) 2012.01.16
posted by cozyboy
:
학습자료/네트워크 2012. 1. 17. 09:33

네트워크 클래스
http://blog.naver.com/myca11?Redirect=Log&logNo=80146514336
[간단한 쉬운 설명]

http://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%ED%81%B4%EB%9E%98%EC%8A%A4
[위키백과]



IPv4의 주소체계는 4바이트(32비트)로 표현되며, 총 12 자리로 나타난다. IPv4에서 IP 주소는 네트워크 주소와 호스트 주소로 나뉜다.



클래스를 알아야 하는 이유 : 글래스 별로 IP 주소에서 네트워크 주소와 호스트 주소가 나뉘는 기준이 다르기 때문

총 32 비트 중
A클래스 : 네트워크 주소(8비트), 호스트 주소(24비트)   
B클래스 : 네트워크 주소(16비트), 호스트 주소(16비트)
C클래스 : 네트워크 주소(24비트), 호스트 주소(8비트)

시작 bit(가장 왼쪽에 있는 bit)
A클래스 : 0
B클래스 : 10  
C클래스 : 110

ex)B클래스 (10******.********.********)
최소 : 10000000.00000000.00000000.00000000
최대 : 10111111.11111111.11111111.11111111 


(++추가++) 서브넷 마스크
http://yagi815.tistory.com/355

 


'학습자료 > 네트워크' 카테고리의 다른 글

MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
zero configuration networking  (1) 2013.02.12
SSL(Secure Sockets Layer)  (0) 2012.01.16
posted by cozyboy
:
학습자료/네트워크 2012. 1. 16. 17:47
: SSL 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었다.(일반적으로 https:// 사용)

SSl 간단한 설명, 쉽게 짧게 설명.
http://blog.naver.com/hoo753?Redirect=Log&logNo=20121474378

ssl 기본 개념과 절차, openssl의 사용에 대한 방법[SSL Certificates HOWTO]
http://wiki.kldp.org/HOWTO/html/SSL-Certificates-HOWTO/index.html


'학습자료 > 네트워크' 카테고리의 다른 글

MTU, MSS [펌]  (0) 2013.06.17
zero-copy[펌]  (0) 2013.02.27
netstat 명령어 사용법 - 펌  (0) 2013.02.13
zero configuration networking  (1) 2013.02.12
네트워크 클래스 서브넷 마스크  (0) 2012.01.17
posted by cozyboy
: