Limetime's TimeLine
article thumbnail
Published 2017. 1. 25. 08:16
14)OSI 7계층~ Network
반응형

" OSI(Open System Interconnection) 7 Layer "

이 OSI7계층은 네트워크에서 기본적으로 베이스로 두고 들어가는 아주 중요한 약속입니다~

이 약속들이 계층마다 다른 역할을 수행 해주기 때문에 이들이 하나라도 빠지면 통신이 안될만큼 아주 중요하죠! 

이 약속은 국제표준기관(ISO)에서 개방형 통신을 가능하게 하기위해 OSI 7 Layer를 만들었습니다.

뭔가 ISO에서 OSI를 만들었다 (ㅋㅋㅋ) 라는게 외우기 좋지 않나요? 외우는거 보다 느낌적으로~

이렇게 물리 -> 데이터링크 -> 네트워크 -> 전송 -> 세션 -> 표현 -> 응용 계층 순으로 되는데

아래와 같이 분업화 되어 있습니다.

7계층 - Application - 사용자 인터페이스 / 응용 프로그램

6계층 - Presentation - 데이터 포맷 / 암호화

5계층 - Session - 연결 유지

4계층 - Transport - 패킷 생성 / 패킷 오류 관리

3계층 - Network - 논리적 주소(IP) 관리 / 경로 설정

2계층 - Data Link - 물리적 주소(MAC)관리

1계층 - Physical - 네트워크의 물리적 주소(케이블, 신호방식)


얘를 따라다니는 TCP/IP 4 Layer 이라는 놈이 있는데 인터넷 모델이라고도 합니다.

우선 이 두 녀석은 매우 중요하기 때문에 기본적으로 외워주세요~

이렇게 OSI7계층과 TCP/IP 4계층은 상호 관계이고 나눌 수 있다는 점!

4계층에서 패킷은 데이터그램과 같습니다~

이제 계층별로 한번 알아봅시다~

아래서 부터 올라 가 볼께요~

물리계층 : 물리계층에서는 비트열과 신호의 변환이 일어나는 말그대로 그냥 물리계층입니다.

특별한 프로토콜이 필요없고 기기의 자체적 성질 즉, 전기적 신호가 전선을통해 장비를 작동시키고 뭐 초기 컴퓨터의 진공관 같은 아날로그적? 그런 개념입니다.

데이터 링크 계층 : 같은 규칙을 바탕으로 연결되어 있는 한 덩어리의 기기를 데이터 링크라 하고, 데이터 링크내에서의 로컬 규칙을 처리하기 위해 있는 것이 데이터 링크층의 프로토콜이다. 데이터 링크층은 데이터 링크간의 차이를 흡수한다. 이 층의 프로토콜은 데이터 링크 안에서 데이터를 어떻게 주소 받을지를 결정하는 역할을 한다. 데이터 링크 내에서의 기기를 식별할 때는 LAN카드에 적힌 MAC(Media Access Control Address) 주소를 이용한다. 

※ 데이터 링크를 구성하는 요소에는 노드(PC, 통신관리기기), 통신매체(케이블), 노드와 통신매체를 연결하는 기기(NIC) 으로 이루어져 있다.

네트워크 계층 :  네트워크층은 여러개의 네트워크를 지나서 수신인의 컴퓨터에 데이터를 전달하는 역할을 합니다. 네트워크 층에서의 주된 프로토콜은 IP(Internet Protocol)하나 뿐이며, 이를 보조해 주는 ICMP가 있습니다. 

IP프로토콜에서는 수신인의 기기를 지정하기 위해 IP주소를 사용하며 이는 4옥텟(32비트)로 구성되어있습니다. ICMP는 데이터가 전달되는 과정에서 문제가 생기면 알려주는 기능으로 IP프로토콜을 보조해주는 역할을 합니다. 네트워크 층의 주된 장비는 라우터가 있으며, 경로를 설정하는 라우팅이라는 중요한 기능을 수행합니다.

트랜스포트 계층 : 트랜스포트층은 데이터를 상대에게 전달하는 역할을 합니다. 수신측에서는 트랜스포트층에서 포트번호를 보고 알맞은 애플리케이션 프로토콜에게 데이터를 전달합니다.

프로토콜에는 TCP와 UDP 두 가지가 있습니다. TCP(Transmission Control Protocol)은 데이터를 안전하고 확실하게 전달하는 것을 목적으로 데이터의 정확성이 요구되는 서비스에 사용됩니다. UDP는 TCP와는 달리 데이터를 빨리 전송하는 것이 목적으로 TCP보다는 절차가 단순하고 속도도 빠릅니다. 이는 데이터의 전송속도가 중요한 서비스에서 사용됩니다.

어플리케이션 계층 : 어플리케이션층은 통신서비스를 실현하는 층으로 다른 4개의 층과 달리 서버와 클라이언트의 개념을 갖습니다. 서버는 데이터를 제공해주고, 클라이언트는 제공을 받는 것입니다. 이 층에서는 서버와 클라이언트의 주고받기를 결정하는 어플리케이션 프로토콜이 있습니다. 서버는 데이터를 저장하며 데이터를 제공해 주는 곳이며, 클라이언트는 우리가 쓰는 대부분의 프로그램을 말합니다. 예를 들어 WWW에서는 WWW서버가 있을테고, 클라이언트는 웹브라우저이며, 프로토콜은 HTTP를 사용합니다.

이외에도 어플리케이션층의 프로토콜은 메일에서사용하는 SMTP와 POP 등이 있으며 필요한 통신서비스에 맞춰 사용합니다.

출처 : http://dokydoky.tistory.com/2


정리 해보자면~ 참고로.. 저는 여러가지 정보를 바탕으로 공부하면서 쓰는겁니다~

물리계층 (L1)에서는 네트워크 인터페이스! 즉, MAC주소를 관리합니다.

MAC주소는 내부 PC끼리 통신을 주고 받을 시에 이용되는 근거리 통신시 사용되는 주소입니다.

48bit니다.!


<ARP>

자 이렇게 처음 통신을 할때 우리는 상대방의 주소도 모르고 뭐 알길이 없습니다.

그럴때 바로 내 정보가 들어간 ARP를 포워딩하여 알려주고 다시받는 거죠.

이렇게 길을 열어갑니다.

처음에 왼쪽 PC에서 오른쪽PC로 핑을 날리면 ARP가 먼저 날라가게 됩니다.

그 ARP를 뜯어보면 이렇게 자신의 IP와 맥주소를 담은 ARP를 날리고 저기보면 FFFF.FFFF.FFFF로 목적지를 정하여 날리는데 FFFF.FFFF.FFFF는 브로드캐스트 주소입니다. 즉, 다 날린다는 뜻이죠.

이렇게 날리면 답장이 오겠죠? 만약 다른 PC가 받았다면 폐기할겁니다.

그러면 오른쪽 PC는 왼쪽 PC의 맥주소와 아이피주소를 모두 알기 때문에 답을 하게되고 그 답안에는 오른쪽 PC의 맥주소와 아이피주소가 담겨있게되죠. 그럼 길이 열리는 겁니다!

이 ARP는 한번 통신하고나면 ARP테이블에 저장되게 되는데 이것을 보기 위해서는 PC에 들어가셔서

apr -a라는 명령어를 치면 나오고 테이블을 초기화 하고 싶으면 arp -d를 입력하시면 됩니다.




인터넷계층 (L2)에서는 IP를 이용한 Routing과 Fowarding기능이 존재합니다.

* Routing은 외부 통신을 위해 목적지 까지 최적의 경로를 정하는 역할을 합니다.

* Fowarding은 목적지주소로 가기위해 나가는 포트로 패킷을 이동시키는 역할을 합니다.

A class => 1 ~ 126

B class => 128 ~ 191

C class => 192 ~ 223

D class => 224 ~ 239

여기서 Loopback(자기 자신만 통신가능한)주소는 기본적으로 다 127.0.0.1 즉, 127네트워크 대역은 대부분 다 루프백입니다.

<사설 주소>

10.0.0.0 ~ 10.255.255.255 (10/8 prefix) A

172.16.0.0 ~ 172.31.255.255 (172.16/12 prefix) B

192.168.0.0 ~ 192.168.255.255 (192.168/16 prefix) C


전송계층 (L3)에서는 TCP와 UDP가 다니는데 

TCP는 연결형 프로토콜이라고 아무래도 연결(?)하면 신뢰성이 있겠지 않나요?

TCP는 신뢰성이 있고, 그만큼 느립니다. (3 way-handshake를 사용 합니다.)


UDP는 신뢰성이 낮고 그만큼 빠릅니다.

특히 스트리밍(동영상) 서비스에 사용됩니다.


응용계층 (L4)에서는 응용프로그램을 사용하는 계층으로 FTP, HTTP등이 있습니다.

그리고, 프로그램상에서 수신측에 전달할 데이터가 만들어지는 곳이기도 합니다.

여기서 나오는 잘 알려진 프로토콜(well-known port number)를 잘 알아두시기 바랍니다.

단골입니다. ㅋㅋㅋ

웹서버(HTTP) => TCP 80

FTP => TCP 21(20) 송*수신 포트를 다르게 사용합니다.

Telnet => TCP 23

SSH => TCP 22

DNS => TCP 53, UDP 53 

반응형
profile

Limetime's TimeLine

@Limetime

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!