'네트워크'에 해당되는 글 3건
- 2009/09/28 [네트워크] Hub, Bridge/Switch
- 2009/09/22 [네트워크] OSI 7 Layer
- 2009/09/20 [네트워크] Ethernet - CSMA/CD
2009/09/20 - [네트워크, 보안] - [네트워크] Ethernet - CSMA/CD
2009/09/21 - [네트워크, 보안] - [네트워크] Token Ring
2009/09/22 - [네트워크, 보안] - [네트워크] OSI 7 Layer
오늘은 허브(Hub), 브릿치(Bridge), 스위치(Switch)에 대해 한 번 끄적여 볼까 합니다. 포스트 작성은 정확한 정보를 전달 할 서적을 다시 찾아보고 하는 것이 아니라 제가 노트했던 내용들을 기초로 그냥(..) 끄적인 것이기 때문에 실제 정보와 다른 부분이 있을 수 있습니다. 잘못된 부분이나 추가 정보는 댓글, 트랙백, 메일 등으로 전달 해 주시면 추가하거나 수정하도록 하겠습니다. ^^
일단 아래 두서없는 내용을 읽어 내려가기 위해 필요한 정보들을 적어 보겠습니다.
※ Unicast, Broadcast, Multicast
Unicast - 목적지 주소를 가지고 전달되는 통신, 1:1 통신, 네트워크 상의 다른 PC에 영향을 주지 않음
Broadcast - 네트워크에 연결 된 모든 단말에 데이터 전달 (목적지 주소는 해당 네트워크의 마지막 주소. 이 부분은 서브넷이 나오면 더 복잡해 지겠지만.. 네트워크의 마지막 주소입니다. 이건 나중에 서브넷에 대해 쓸 날이 온다면...)
Multicast - 특정한 목적지들(그룹)을 대상으로 데이터를 전달. 보통 네트워크 주소의 일정 부분까지 쓰고 나머지 부분을 특수문자 처리 해 쓰여진 주소로 시작하는 모든 PC들에게 데이터가 전달되는 통신
1. 허브, 브릿지/스위치의 공통점과 차이점
세 네트웍크 장비의 공통점은 단말(간단히 이야기 하자면 네트워크에 연결 될 PC들)들을 연결 해 주는 장비라는 것입니다. 허브는 컴퓨터 관련 전공 학생 분들이나 네트워크에 관심이 있으신 분들이라면 어떻게 생기고 어떻게 사용하는지 아시겠죠? 최근 가정에서 많이 사용되는 인터넷 공유기와 비슷하게 생겼다고 생각하시면 됩니다.
허브, 브릿지/스위치의 차이점은 허브는 Physical Layer에 속하고 브릿지와 스위치는 Data Link Layer에 속한다는 것입니다. 자세한 이야기는 예전에 작성했던 2009/09/22 - [네트워크, 보안] - [네트워크] OSI 7 Layer 포스트를 참고 하시기 바랍니다. 허브는 그저 PC들을 연결 할 뿐이고, 브릿지/스위치는 네트워크 상에서 Flow Control 기능을 추가적으로 하게 됩니다.
2. 브릿지, 스위치의 공통점과 차이점
공통점 : Collision Domain을 분할한다는 것입니다. 패킷 전송 시 MAC Address를 이용해 전체 네트워크 중 필요한 부분에만 패킷을 전송하는 기능을 수행합니다.
차이점 : 브릿지는 Software 기반, 스위치는 Hardware 기반으로 collision domain을 분할하게 됩니다. 스위치는 브릿지에 비해 속도가 빠르고, 많은 포트수를 지원하고, 각 포트마다 다른 속도를 지정 할 수 있고, Full-Duplex(양방향 통신)을 지원할 수 있습니다.
i) Learning - 스위치를 통과하는 데이터(패킷)를 확인하고 Flooding을 통해 Source Address(패킷 발송 PC)가 어느 포트에 해당하는지 찾아내 MAC Table을 작성
ii) Flooding - Destination MAC Address가 MAC Table에 없거나 Broadcast가 발생하면 그 포트를 제외한 나머지 모든 포트로 Data(패킷)를 전송. 물론 자주 발생하면... 네트워크 효율이 엉망이 되겠죠? ^^;
iii) Forwarding - 데이터가 스위치에 도달했을 때 목적지 주소가 MAC Table 상에 존재하고, 목적지 주소가 같은 포트에 해당하지 않을 때, 목적지 주소가 포함된 포트로 데이터를 전송. 자! 한 번 생각 해 봅시다. 아마 이 기능이 없다면 전체 네트워크에 해당 데이터가 전송될 것입니다. 이 기능 덕분에 데이터를 전송 한 PC가 속한 포트와 목적지 PC가 속한 포트 외에 다른 포트들은 정상적으로 네트워크 기능이 동작하게 됩니다.
iv) Filtering - 위의 Forwarding과 함께 네트워크 효율을 높여주는 (Collision Domain을 분리해 주는) 기능입니다. 데이터가 스위치에 도달했을 때, 출발지/목적지의 주소가 같은 포트에 속해 있고, 기존에 MAC Table에 기록되어 있을 때 스위치는 이 데이터를 다른 포트에 전달되지 않도록 막아 줍니다. 그 데이터가 다른 포트에 전달되지 않아도, 정상적인 통신이 이루어지고, 덕분에 다른 포트에 속한 녀석들은 그 시간에 다른 일을 할 수 있으니까요!
v) Aging - 이는 스위치의 유지/보수 기능이라고 생각하시면 됩니다. MAC Table이 많아지면 Filtering, Forwarding 기능을 수행하는 데 있어 Overhead가 발생할 가능성이 있습니다. 또한 저장 공간은 한정 되어 있기 때문에 무한정 MAC Table을 추가할 수 있는 것도 아닙니다. 데이터의 전송을 계속 관찰하며 사용 빈도가 적은 주소를 MAC Table 상에서 삭제하고 MAC Table을 유지하는 기능을 말합니다.
휴.. 제가 읽어도 알 수 없는 내용이군요. 뭔가 쉽게 정리 하려면 머릿속에 확실히 정리가 되어 있어야 하는데.. 뭐가 중요하고 뭘 확실히 전달해야 할 지 잘 몰라서 더더욱 두리뭉실한 글이 되는 것 같습니다. 읽는 분들께는 죄송할 따름.. 추가적인 질문같은 건.. e-mail(noel@noelstyle.net)로 주시면 아는 한도 내에서 설명 해 드리도록 할께요 ^^
ps. 참! 허브 구매를 위해 정보를 찾아보신 분들은 더미허브, 스위칭허브 등에 대해 들어보셨을꺼에요. 스위칭허브는 스위치 기능이 일부 추가된 허브고 더미허브는 말 그대로 그냥 허브(무작정 연결..)라고 생각하시면 됩니다. :-)
'네트워크, 보안' 카테고리의 다른 글
| [네트워크] Hub, Bridge/Switch (0) | 2009/09/28 |
|---|---|
| [네트워크] OSI 7 Layer (0) | 2009/09/22 |
| [네트워크] Token Ring (0) | 2009/09/21 |
| [네트워크] Ethernet - CSMA/CD (0) | 2009/09/20 |
자꾸 네트워크 카테고리의 글을 올리고 있네요.
예전 네트워크 공부 했던 노트를 찾아서 뒤적이다가 어딘가로 사라진 다른 과목들의 노트가 아쉬워 입맛 다셨습니다. 그래서 그래! 이왕 공부 한 거고 다시 정리하는 셈 치고 블로그에 한 번 올려 보자 하는 생각이 들어 조금씩 써서 올리고 있어요.
제 지식이 워낙 얕고 실력이 없는데다가.. 말솜씨마저 완전 바닥이어서 그냥 “누가 공부하면서 정리 한 거니까 한 번 훑어보고 말자”라는 생각으로 봐 주셨으면 하는 생각이 조금 드네요 ^^;;
혹시라도 잘못 알고 있는 부분이나 추가적인 내용들은 언제나 알려주시면 감사하겠습니다!
일단 이 포스트 하나에서 OSI 7 Layer를 모두 얘기 한다는 건 저로서는 역부족이고, 어떤 내용이었는지 기억을 더듬어 한 번 써 봐야겠습니다.
우리가 사용하고 있는 인터넷에는 얼마나 많은 종류의 장비들이 물려 있을까요?
각 벤더의 서로 다른 종류의 서버들.. 네트워크를 연결 해 주는 라우터, 스위치, 리피터 등의 네트워크 장비들, 수많은 회사들이 쏟아내는 수많은 종류의 단말(일반적으로 컴퓨터겠죠?)들이 함께 맞물려서 인터넷을 이루고 있습니다. 이처럼 수많은 종류의 장비들을 단순히 연결 한다고 네트워크의 기능이 정상적으로 동작할 리 없겠죠? 또한 네트워크를 통한 데이터의 통신이 복잡해짐에 따라 뭔가 구조화를 시킬 필요가 발생하게 됩니다.
때문에 ISO라는 국제 표준 기구에서는 네트워크를 7개의 계층으로 구조화시킨 OSI(Open Systems Interconnection) reference model을 만들게 됩니다. 이것이 바로 OSI 7 Layer죠.
일단 여기까지 쓰고 보니.. 쓴다고 저질러 보긴 했는데.. 책으로 몇 권 분량으로 정리 된 OSI 7 Layer를 대체 무슨 베짱으로 써 보려는 마음을 먹었는지 제가 원망스러워 지는군요 ^^;
일단 어떤 계층들이 있고 각 계층이 어떤 일을 하는지, 또 왜 이렇게 계층을 나눴는지에 대한 제 부족한 생각을 적어 봐야겠습니다.
각 Layer를 살펴 보자면
7계층. Application Layer
최 상위의 7계층입니다. 이 Application Layer는 사용자가 실제로 데이터를 가지고 작업을 하는 계층입니다. 일단 네트워크로 시작했으니 예로 HTTP, FTP, WWW, Telnet, SMTP, POP 등과 같이 application에서 이루어지는 작업들이 속한 계층입니다.
6계층. Presentation Layer
6계층입니다. 아직까지는 네트워크 단계가 아닌 application과 더 밀접한 관계가 있는 계층입니다. 이 계층은 application layer에서 작동할 데이터(Data)들의 Format을 정의하는 단계라고 생각할 수 있습니다. 음.. 어렵군요 Data의 Compression, Encryption 등을 통해 서로 다른 환경의 컴퓨터/Appz가 서로 데이터를 해석 할 수 있도록 정의하는 단계입니다. 예를 들어 보자면 JP(E)G, TIFF, GIF, MPEG, MIDI, RTF, ASCII, EBCDIC 등의 포맷들이 이 계층에 속합니다.
5계층. Session Layer
후아~ 이제 조금 네트워크와 가까워졌네요. 물론 물리적으로는 네트워크에 속하지 않지만, 그 네트워크를 유지/활용하는 단계랄까요. Network connection Establishment, Manage, Control and Terminate를 담당하는 계층입니다.네트워크 연결에 대한 전반적인 제어와 함께 데이터와 어플리케이션을 매칭하고(확장자와 응용 프로그램을 매칭하는 것과 비슷하다고 생각하시면 됩니다.) 유지/관리하는 기능을 하는 O/S(Operating System)이 이 계층에 속하게 됩니다.
4계층. Transport Layer
데이터의 전송을 책임지는 계층입니다. 데이터 전송 시 전송 상태를 확인하고, 에러 발생 시 에러를 확인하고, 필요하다면 재 전송 하는 역할 등을 합니다. 예로는 TCP/UDP가 있습니다.
3계층. Network Layer
데이터를 목적지까지 가장 빠르고 안정적으로 전송하기 위한 일들을 하는 계층입니다. IP, IPX, ICMP, ARP 등의 프로토콜과, 데이터 전송 경로를 결정하는 Router가 이 계층에 속합니다. 하지만 Transport Layer와 구분할 점은 Transport Layer는 데이터와 무결성, 에러 등을 확인하는 역할을 가지고 있지만 이 Network Layer는 오로지 데이터의 전송에만 관여한다는 것입니다.
2계층. Data Link Layer
데이터의 물리적인 전송, 에러 검출(error notification), Flow Control(흐름제어.. 이건 한글보다 영어가 쉽군요.) 등을 담당합니다. 이 중 에러 검출은 Data Link Layer에서는 검출만 할 뿐이고, 이 검출된 에러를 확인하고, 다시 연결/재전송 등은 Transport Layer에서 담당합니다. 일반적인 네트워크 장비인 브릿지(Bridge), 스위치(Switch)와 HDLP, PPP, Frame-relay, FDDI, ATM 등의 프로토콜이 이에 속합니다.
1계층. Physical Layer
이 물리적 계층(물리적 계층이라..직역하니 손발이 오그라드는군요.)은 데이터(신호)를 전기 신호로 바꾸어 주는 역할과 함께 실제 이 데이터들이 전송되는 매체(Media라는 표현을 많이 쓰죠. 보통 Cable들을 의미합니다.)를 포함합니다. 또한 기본적인 네트워크 장비인 허브(Hub), 리피터(Repeater) 등이 이에 속합니다.
이건 뭐 장황하게 끄적인 것 밖에 되지 않네요.
실제 이 구조를 이해하려면 OSI 7 Layer를 도식화 한 데이터의 흐름과 함께, encaptualation, PDU, 각 단계에서의 데이터에 포함된 header, trailer의 구조 및 역할이 훨씬 중요한데 말이죠.
우선 제 머리에 뒤죽박죽 엉켜 있는 내용들 마구 써 내려 왔는데, 저도 절 믿지 못하니 제 글 대충 읽으시고 참고할 만 한 페이지 하나 링크 할께요
OSI model (in wikipedia) : http://en.wikipedia.org/wiki/OSI_model
구조를 도식화 한 것과 함께, 각 레이어에 포함된 요소들 및 각 레이어의 기능들이 잘 정리되어 있네요. (여기까지 쓰기 전에 위키를 먼저 볼 걸 하는 생각에 제 자신이 원망스럽습니다. 물론 이런 내용을 써 봐야겠다는 생각 자체가 가장 후회가… ^^;)
'네트워크, 보안' 카테고리의 다른 글
| [네트워크] Hub, Bridge/Switch (0) | 2009/09/28 |
|---|---|
| [네트워크] OSI 7 Layer (0) | 2009/09/22 |
| [네트워크] Token Ring (0) | 2009/09/21 |
| [네트워크] Ethernet - CSMA/CD (0) | 2009/09/20 |
안녕하세요 Noel입니다!
뜬금없이 네트워크 카테고리를 슥 만들고 Ethernet의 특징? 전송방식?인 CSMA/CD에 대해 슬그머니 끄적여 보려구요
(Server / Network / Network Security... 다 재미있는 주제들이잖아요 ^^ )
Ethernet 이라는 기술 자체를 하나의 포스트로 정리한다는 건... 저의 부족한 능력으로는 불가능하고
이 포스트에서는 Ethernet에서 채택하고 있는 전송 방법인 CSMA/CD에 대해 이야기해 볼께요
CSMA/CD = Carrier Sense Multiple Access with Collision Detection
간단하게 용어를 보자면 "네트워크 내의 Carrier 를 Sense 해 하나의 Media를 통해 Multiple Access를 가능하게 하는 기술" 이 되겠네요.
뒤의 CD는 위처럼 Carrier Sense를 수행했음에도 불구하고 동시에 여러개의 Node에서 패킷을 전송했을 경우 발생하는 Collision을 Detection 하는 방식을 함께 취한다고 생각하시면 되겠습니다.
무슨 말인지 도통 이해가 안가신다구요? 아래서 자세히... (제가 아는게 적어서 충분히 이해를 시켜드릴 수 있을지는 잘 모르겠습니다. =ㅅ=)
이 CSMA/CD가 사용되는 이유는 한 네트워크에 동시에 여러개의 패킷이 전송될 경우... 제대로 된 통신을 할 수 없기 때문입니다.
그럼... 각 Node마다 별개의 케이블을 연결해 통신을 하면 되지 않느냐고요? 설마 이렇게 생각하실 분은 없을거라 생각하지만...
저는 10개의 Node를 가지고 45개의 케이블을 서로서로 연결해야 하고 하나의 시스템에 9개의 랜카드가 꼽힌 환경에서 일할 자신은 없습니다.. 네트워크 관리는 더더욱.. ㅡ,.ㅡ;
이런 이유들로 Ethernet은 CSMA/CD라는 방식을 이용해 패킷을 송신하게 됩니다.
일단 Node A, B, C, D가 한 네트워크를 이루고 있다고 가정해 봅시다.
Node A 에서 Node B에 전송할 패킷이 발생했습니다.
그럼 Node A 는 네트워크에 패킷들이 돌아다니고 있는지 한번 둘러봅니다. (Carrier Sense) 결과는 두 가지로 나뉘겠죠?
패킷이 있다 => 패킷이 없을 때까지 기다립니다. 네트워크에 너도나도 패킷을 전송할 경우... 하나의 Connection도 제대로 된 통신을 할 수 없겠죠?
패킷이 없다 => 자... 이제 보낼 때가 된겁니다. 자신있게 Destination을 B로 패킷을 날려 줍니다.
어라? Carrier Sense 하나로 위의 문제가 해결되었군요!!! 멋져요 o_O
하지만.. 여기서 문제가 하나 생기게 됩니다...
만약 Node A 는 Node B 에게 패킷을 보내려고 합니다. 그런데 동시에 Node C 도 Node D에 패킷을 보내려고 하고 있네요
Node A, C 는 Carrier Sense 과정을 거쳐 네트워크가 놀고 있다는 것을 확인하게 되고 패킷 전송을 시작합니다.
두둥!! 결국 네트워크상에서 Node A, C 가 보낸 두 가지 패킷은 충돌을 일으키게 되는군요.
이건 Collision Detection 후 어떤 과정을 거쳐 해결하게 됩니다. 이제 그 과정을 알아보도록 하죠
일단 충돌이 일어났을 경우 Node A, C 둘은 어라!! 충돌이네!! 하고 네트워크상에서 충돌을 감지하게 되고, Transmit jam signal을 생성하고 패킷 전송을 중단합니다.
중단한 이후 어느정도 시간을 기다린 후 다시 Carrier Sense 단계부터 패킷 전송 과정을 진행하게 됩니다.
Q : 그럼 또 충돌이 일어나지 않나요?
A : 날 수도 있고 안날 수도 있답니다. random backoff라 불리는데 random 한 시간동안 wait 후 패킷 전송을 시도하기 때문이죠. 정말 불운하게도 난수 발생시 같은 숫자가 발생했다면.... 다시 한 번 충돌 / 재전송 하는거죠 ^^;
wikipedia에서 발취한 순서도입니다.
< CSMA/CD - from wikipedia (http://en.wikipedia.org/wiki/File:Csmacd.JPG) >
그렇다면... Node 들이 매우 많을 경우는 어떻게 하나요??
흠흠... 이건 나중에 다른 포스팅에서 이야기 해 보도록 하죠.. ^^
너무 엉성한 포스트여서 혹시 읽으시는 분들에게 혼란을 드리는 건 아닐지 하는 걱정이 드네요.. 휴우..
즐거운 하루 되세요.
'네트워크, 보안' 카테고리의 다른 글
| [네트워크] Hub, Bridge/Switch (0) | 2009/09/28 |
|---|---|
| [네트워크] OSI 7 Layer (0) | 2009/09/22 |
| [네트워크] Token Ring (0) | 2009/09/21 |
| [네트워크] Ethernet - CSMA/CD (0) | 2009/09/20 |

Prev

Rss Feed