'Network'에 해당되는 글 3건
- 2009/09/22 [네트워크] OSI 7 Layer
- 2009/09/21 [네트워크] Token Ring
- 2009/09/20 [네트워크] Ethernet - CSMA/CD
자꾸 네트워크 카테고리의 글을 올리고 있네요.
예전 네트워크 공부 했던 노트를 찾아서 뒤적이다가 어딘가로 사라진 다른 과목들의 노트가 아쉬워 입맛 다셨습니다. 그래서 그래! 이왕 공부 한 거고 다시 정리하는 셈 치고 블로그에 한 번 올려 보자 하는 생각이 들어 조금씩 써서 올리고 있어요.
제 지식이 워낙 얕고 실력이 없는데다가.. 말솜씨마저 완전 바닥이어서 그냥 “누가 공부하면서 정리 한 거니까 한 번 훑어보고 말자”라는 생각으로 봐 주셨으면 하는 생각이 조금 드네요 ^^;;
혹시라도 잘못 알고 있는 부분이나 추가적인 내용들은 언제나 알려주시면 감사하겠습니다!
일단 이 포스트 하나에서 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 |
2009/09/20 - [네트워크, 보안] - [네트워크] Ethernet - CSMA/CD
예전 Ethernet이라는 네트워크 통신 방식(?)과 Ethernet에서 데이터를 전송하는 CSMA/CD라는 동작에 관해 포스트를 작성했었습니다.
이번엔 이 Ethernet 방식과 다른 개념의 네트워크인 Token Ring에 대해 짧게 적어보겠습니다.
위 포스트의 Ethernet과 Token Ring은 일단 네트워크상에서 데이터(패킷)을 전송하는 방법에 대한 차이라고 생각하시면 될 텐데요.
역시 wikipedia는 한 번 찾아보고 시작하는 것이 좋겠죠?
http://en.wikipedia.org/wiki/Token_Ring
이미 사용되지 않는 방식이고, 위의 포스트에 덧붙이려다 따로 작성하는 것이기 때문에 짧게 이야기 해 보겠습니다.
일단 Token Ring 방식을 사용하는 네트워크는 기본적으로 Ring Topology가 적용되어 있습니다. 각 Node 들이 Ring 형식으로 나열되어 있는 모양으로 네트워크가 구성되어 있는 것이죠.
Ethernet에서는 현재 네트워크 상으로 패킷을 전송하고 있는 Node가 없을 경우 일단 패킷을 전송 하고 보는 방식이지만 이 Token Ring은 Token을 가진 Node만이 패킷을 네트워크상으로 전송 할 수 있습니다.
다시 풀어 얘기 해 보자면
네트워크상에 토큰은 딱 하나만 주어지게 됩니다. 그리고 기본 규칙으로 토큰이 없는 노드는 네트워크상에 패킷을 전송할 권한을 갖지 못합니다. 토큰을 가진 노드는 네트워크에 자신이 전송 할 패킷들을 전송 한 후 다음 차례의 노드에 토큰을 인계하는 방식을 말합니다.
IEE 802.5에 규약되어 있고 IBM에 의해 개발/사용되었습니다. 당시 이더넷보다 효율적인 방법으로 이야기되었으나.. 스위치가 개발되고 swithing Ethernet 방식에 밀려 역사의 뒤안길로 접어들었달까요.
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 |
안녕하세요 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