네트워크 시스템_OSI 7모델, TCP/IP 모델

박다영·2022년 12월 3일
1

CS

목록 보기
1/1
post-thumbnail

네트워크 시스템

컴퓨터의 통신 시스템 즉, 네트워크 시스템은 하나의 커다란 소프트웨어라 할 수 있다.
그리고 OSI 7 Layer 모델은 이 네트워크 소프트웨어의 구조를 설명한다.
OSI 7 모델은 7계층으로 이루어진다.

7계층 : 응용 계층(Application)
6계층 : 표현 계층(Presentation)
5계층 : 세션 계층(Session)
4계층 : 전송 계층(Transport)
3계층 : 네트워크 계층(Network)
2계층 : 데이터링크 계층(Data Link)
1계층 : 물리 계층(Physical Layer)



OSI 모델 vs TCP/IP 모델

하지만, 현대의 인터넷은 OSI 모델이 시장 점유 싸움에서 지면서,
TCP/IP 모델의 후속인 TCP/IP updated 모델이 가장 많이 사용되고 있다.
(TCP/IP updated 모델은 1~4단계는 OSI 모델과 동일하나, 5~7단계가 하나의 단계로 통합돼있다.)
이 글은 TCP/IP updated 모델을 기준으로 각 계층별 기능과 작동에 대해 설명하려 한다.



IP 주소 / MAC 주소 / Port 주소

컴퓨터는 네트워크 통신을 위해 IP 주소, MAC 주소, Port 주소라는 3가지 주소를 사용한다.
MAC 주소는 2계층에서, IP 주소는 3계층에서, Port 주소는 4계층에 대한 설명에서 필요하므로,
각 계층에 대한 설명을 들어가기 전 이에 대해 간단하게 설명하려 한다.

IP 주소 (Internet Protocol) 란, 컴퓨터의 집주소라고 할 수 있다.
장치가 네트워크에 등록되는 시점에 할당받는 번호로, 같은 공간에 있는 장치들은 실제로 IP주소가 비슷하다.

MAC 주소 (Media Access Control) 란, 컴퓨터의 주민등록번호라고 할 수 있다.
장치가 생산될때 제조사에서 할당해주는 고유번호이다. IP주소는 바뀌어도 MAC주소는 바뀌지 않는다.

Port 주소 (Port Number) 란, 한 컴퓨터에서 실행 중인 각 프로그램들을 구분해주는 주소다.
IP 내에서 실행중인 프로그램 (프로세스)이 카카오톡과 유튜브라면, 이 둘은 각각 다른 port 주소를 가진다.
내가 데이터를 받았을 때, 이 데이터가 카톡의 데이터인지, 유튜브의 데이터인지 알려주는 것이 port 번호다.

참고 : IP 주소, MAC 주소 그게 뭐니?



1계층 : 물리 계층(Physical Layer)

컴퓨터가 통신하기 위해서는 0과 1을 주고 받을 수 있어야 한다.
물리적으로 연결된 컴퓨터끼리 이 0과 1을 주고 받을 수 있게 해주는 모듈이 물리계층이다.

encoding
데이터를 보내는 컴퓨터가 0과 1을 아날로그 신호 (전기신호)로 바꾸어 전선으로 내보내면,

decoding
데이터를 받는 컴퓨터가 아날로그 신호를 해석해 0과 1로 이루어진 데이터를 얻는다.



데이터링크 계층에서는 MAC 주소를 기반으로 네트워크 내의 통신을 담당하는데,
스위치를 통해 출발 MAC주소와 도착 MAC주소를 확인해
자신에게 보낸 데이터인지 검사한 후 데이터를 들여보낸다.

이렇게 들어온 데이터를 정확하게 읽기 위해서는 Framing 작업이 필요하다.
Framing은 데이터의 앞 뒤로 header 와 trailer 라는 특정한 비트열을 붙여
어떤 컴퓨터에서 어떤 정보를 주었는지 각각의 데이터를 구분할 수 있게 해준다.

.. || header [data1] trailer || header [data2] trailer || header [data3] trailer || ..

encoding
데이터를 보내는 컴퓨터가 데이터를 Framing 하고,
0과 1을 아날로그 신호 (전기신호)로 바꾸어 전선으로 내보내면,

decoding
데이터를 받는 컴퓨터가 아날로그 신호를 해석해 0과 1로 이루어진 데이터를 얻고,
Framing 으로 각 데이터를 구분해 받아온다.



3계층 : 네트워크 계층(Network)

우리가 다른 사람에게 택배를 보낼 때, 받는 이의 주소가 필요하듯,
다른 컴퓨터로 데이터를 보내고 싶을 때도 목적지의 주소가 필요하다. (IP 주소)
또한, 택배가 물류창고에서 출발해 각 지역의 허브를 지나면서 택배를 넘겨주는 것처럼,
컴퓨터도 라우터 (Router)들을 거치면서 데이터들을 넘겨주고 넘겨받는다.

각 컴퓨터 가진 집주소와 같은 IP 주소를 통해 그 주소로 가는 최적의 길을 찾아 (routing)
다음 라우터에게 데이터를 넘겨주는 것이 (forwarding) 네트워크 계층이 하는 일이다.

encoding
데이터를 보내는 컴퓨터가 데이터에 IP 주소를 붙여 패킷을 싸고,
header 와 trailer를 붙여 Framing 하고,
0과 1을 아날로그 신호 (전기신호)로 바꾸어 전선으로 내보내면,

decoding
데이터를 받는 컴퓨터가 아날로그 신호를 해석해 0과 1로 이루어진 데이터를 얻고,
Framing 으로 각 데이터를 구분한 다음,
패킷을 열어서 IP 주소에 맞는 데이터를 받아온다.



4계층 : 전송 계층(Transport)

컴퓨터에서 실행되고 있는 프로그램 (프로세스)들은 각각 고유의 port 번호를 가진다.
송신자 컴퓨터가 수신자 컴퓨터에 있는 프로세스의 port 번호를 데이터에 붙여서 보내면,
수신자 컴퓨터는 데이터를 받아 각 port 번호에 따라 각 프로세스에 데이터를 넘겨준다.

encoding
데이터를 보내는 컴퓨터가 데이터에 port 번호를 붙인 후,
IP 주소를 붙여 패킷을 싸고,
header 와 trailer를 붙여 Framing 하고,
0과 1을 아날로그 신호 (전기신호)로 바꾸어 전선으로 내보내면,

decoding
데이터를 받는 컴퓨터가 아날로그 신호를 해석해 0과 1로 이루어진 데이터를 얻고,
Framing 으로 각 데이터를 구분한 다음,
패킷을 열어서 IP 주소에 맞는 데이터를 받아온 다음,
port 번호에 따라 각각의 프로세스에 데이터를 나눠준다.



5계층 : 응용 계층(Application)

서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라고 한다.
클라이언트 측에서 서버로 데이터를 보내기 위해서는
클라이언트와 서버 간 통신 규칙인 응용계층의 프로토콜을 사용하며,
응용계층은 클라이언트의 요청을 서버가 이해할 수 있는 데이터로 변환하고 전송한다.

프로토콜의 종류는 다양하며, 웹사이트를 볼때는 HTTP, 파일을 전송할 때는 FTP,
메일을 보낼 때는 SMTP, 메일을 받을 때는 POP3라는 프로토콜을 사용한다.

encoding
데이터를 보내는 컴퓨터가 프로토콜에 따라 데이터를 인코딩한 후,
port 번호를 붙이고,
IP 주소를 붙여 패킷을 싸고,
header 와 trailer를 붙여 Framing 하고,
0과 1을 아날로그 신호 (전기신호)로 바꾸어 전선으로 내보내면,

decoding
데이터를 받는 컴퓨터가 아날로그 신호를 해석해 0과 1로 이루어진 데이터를 얻고,
Framing 으로 각 데이터를 구분한 다음,
패킷을 열어서 IP 주소에 맞는 데이터를 받아온 다음,
port 번호에 따라 각각의 프로세스에 데이터를 나눠주고,
프로토콜에 따라 데이터를 디코딩해서 실제 데이터를 꺼내온다.



정리 일러스트

참고 : 우아한 테코톡 - 히히의 OSI 7 Layer

profile
개발과 디자인 두마리 토끼를!

0개의 댓글