남이 읽는 CS/네트워크

[네트워크 1편] OSI 7계층 & TCP/IP 4계층

배발자 2022. 8. 7.
반응형

 

안녕하세요~ 배씨입니다!!!ㅎㅎ 

 

최근 교육을 듣느라 CS 포스팅을 미루고 미루다가 같은 교육을 듣는 사람들과 CS 스터디를 개설하면서 다시 포스팅을 시작하려고 합니다~ 🎉

 

저는 이번 스터디에서 네트워크라는 과목을 선택했고 2주에 한번씩 포스팅을 진행하려고 합니다! 

사실 네트워크 과목이 저한테 가장 큰 취약점이라고 생각을 했고 이번 기회에 많은 글과 참고 서적을 보면서 포스팅을 준비하려고 합니다~ 

 

오늘 제가 다룰 주제는 "OSI 7계층과 TCP/IP 4계층" 에 대해서 살펴볼려고 해요!! 

네트워크하면 가장 기본 중에 기본이라고 말을 할 수 있는 주제죠:)

 

 

자! 이제 설명 들어갑니다

 

 

 

일산에 사는 현동이라는 친구는 이렇게 멋진 차를 사고 드라이브를 하는 도중 타이어가 터졌다고 가정을 해봐요! 

 

그러면 수리를 맡기러 카센타를 가야겠죠???

 

여기서  자동차 정비공은 본네트를 열어서 엔진을 점검하거나 사이드 미러, 창문 등 다른 부품의 점검이 필요할까요?? 

 

"아니죠!" 

 

타이어에 문제가 있으니까 타이어만 보면 되겠죠??? 

이처럼 네트워크에서도 특정 위치에 이상이 생기면 그 계층만 수정할 수 있게 설계되어 있다는 거에요~

 

1. OSI(Open Systems Interconnection) 7계층 

 

지금은 상상도 못하시겠지만 같은 회사의 컴퓨터끼리만 통신이 가능했던 시절이 있었답니다~

예를 들어, A 사의 컴퓨터와 B 사의 컴퓨터와는 통신이 불가능했더라는 거죠. 

 

여기서 케이블을 연결하는 커넥터도 회사별로 다르다면 더 곤란했겟죠???

이런 일들이 있어서 공통으로 사용할 수 있는 표준 규격을 정해야만 했어요! 

 

그래서 ISO(국제 표준화 기구)에서 OSI 모델이라는 표준 규격을 제정했답니다. 

 

데이터의 송수신은 컴퓨터에서 컴퓨터로 데이터를 전송하는데 컴퓨터 내부에서는 여러 가지 일을 하게 됩니다. 이런 일을 7계층으로 나눠서 표현한 모델을 "OSI 7 계층 모델"이라고 부른다는 거에요! 

 

계층 이름 설명
7계층 Application Layer (응용 계층) 이메일 & 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스 제공
6계층 Presentation Layer (표현 계층) 문자 코드, 압축, 암호화 등의 데이터를 변환
5계층 Session Layer (세션 계층) 세션 체결, 통신 방식을 결정
4계층 Transport Layer (전송 계층) 신뢰할 수 있는 통신 구현
3계층 Network Layer (네트워크 계층) 다른 네트워크와 통신하기 위한 경로 설정 및 논리 주소 결정
2계층 Data Link Layer (데이터 링크 계층) 네트워크 기기 간의 데이터 전송 및 물리 주소 결정
1계층 Physical Layer (물리 계층) 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어

* 계층의 앞글자를 따서 Please DoN'T SPA 이렇게 외우는 방식도 있다고 합니다 ㅎㅎ 참고!

 

위의 표에서 정리 된 글을 보시면 계층 별로 정확히 어떤 일을 하는건지 확 와닿진 않으실겁니다~ 😵

 

현재까지는 "아~ 7계층으로 구성되어있네?? ", "계층마다 하는게 다르네?" 이 정도만 이해하셔도 됩니다! 

다음 포스팅부터 계층마다 중요한 부분을 다룰거니까!  ok? 

 

그치만 지금 포스팅 내용에서 데이터가 어떻게 흘러가는지 흐름 정도는 알고 가셔야합니다. 

바로 이어서 설명드릴게요!

 

 

위의 그림을 보시면 OSI 7계층을 기준으로 Data의 흐름이 보이네요!

 

데이터를 전송하는 쪽(송신 측) 데이터를 보내기 위해서 상위 계층에서 하위 계층으로 데이터를 전달해요~

데이터를 받는 쪽(수신 측)  하위 계층에서 상위 계층으로 각 계층을 통해 전달된 데이터를 받게 되는거에요

* 각 계층은 독립적이므로 데이터가 전달되는 동안에 다른 계층의 영향을 받지 않습니다!

 

Data를 보낼려면 Data의 앞부분에 전송하는데 필요한 정보를 붙여서 다음 계층으로 보내야해요. 이러한 정보를 "헤더"라고 말을 하고 데이터를 전달받을 상대방에 대한 정보도 포함되어 있습니다!

* 트레일러 : 데이터 전송 도중 오류가 발생하는지 확인하는데 사용되며 FCS(Frame Check Sequence)라고 부르기도 해요!

 

이처럼 헤더를 붙여 나가는 것캡슐화(encapsulation) 라고 부르며 수신 측에서는 헤더를 하나씩 제거하게 되는데 이러한 과정을 역캡슐화 (decapsulation)이라고 부릅니다. 

 

그림을 보면  7계층의 Data 블럭에서 하위 계층으로 내려갈때마다 계층별로 헤더가 붙으면서 캡슐화되고 물리 계층까지 내려오게 되면 송신측에서 수친측에 전기신호를 넘겨줍니다. 그리고 다시 목적지 섹션에서 하위 계층부터 헤더의 정보들이 제거되는 것이 보이네요~ 

 

아직 어색한 분들을 위해서 간단한 예를 들어서 설명해볼게요.

배씨가 현동이라는 친구에게 테트리스 블럭을 선물해줄려고 택배를 부친다고 가정할게요! 

 

1. 배씨는 상자에 보내는 사람 정보받는 사람의 정보를 표기합니다.
2. 상자를 전달받은 택배사는 운송장 번호나 요금 등의 추가 정보를 상자에 표기합니다.  
3. 현동이는 택배를 전달받아 정보들이 부착된 상자를 제거함으로써 테트리스 블럭을 꺼내볼 수 있습니다.

 

배씨는 현동이에게 주고자하는 물건은 오직 테트리스 블럭(데이터) 하나 뿐입니다. 

하지만 테트리스 블럭(데이터)만으로는 현동이에게 줄 수 없어요.

 

나의 정보(헤더) 현동이의 정보(헤더)를 추가해줘야하고 택배사(다음 계층)에 전달되면운송장 번호(헤더) 요금(헤더) 의 정보들도 추가되겠죠

 

그리고 현동이는 여러 계층을 건너온 택배 상자에 붙어있는 부착물들을 차례대로 제거(역캡슐화)하고 안에 있는 테트리스 블럭(데이터)만 꺼내보는 거죠.

 

 


 

 

출처 : https://thinkground.studio/osi-7-layer-packet-concept/

 

 

OSI 7계층에서는 계층마다 헤더 정보들이 붙어서 하나의 블럭으로 되어있는 데이터의 단위 PDU (Protocol Data Unit)라고 불러요!

 

또한 계층마다 PDU를 부르는 명칭이 달라요~ 

위의 그림을 보시면 응용 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층에서 불리는 PDU 명칭은 데이터, 세그먼트, 패킷, 프레임으로 불리네요! 

* 일반적으로 5계층인 세션 계층과 6계층인 표현 계층은 7계층인 응용계층에 포함하여 생각할 수 있기때문에 단위는 데이터.

 

어.. 근데 저기에 TCP/UDP Header? IP Header? 

헤더는 헤던데 앞에 많이 들어본 이름들도 같이 붙어져있네요?

 

제가 이 부분은 조금있다가 설명드릴게요 ㅎㅎ 일단 패스  😁

 

계층 단위 (PDU)
응용&세션&표현 계층 데이터
전송 계층 세그먼트
네트워크 계층 패킷
데이터 링크 계층 프레임
물리 계층 비트

 


 

2. TCP/IP 4계층 

 

출처 : https://goitgo.tistory.com/25

 

 

TCP/IP 모델은 OSI 7계층과 조금 차이가 있죠?? 

 

TCP/IP 모델은 크게 응용계층, 전송계층, 인터넷 계층, 네트워크 엑세스 계층으로 구분짓습니다!

보시면 OSI 7계층에서 응용 계층, 표현 계층, 세션 계층이 TCP/IP 모델에서는 응용계층으로 합쳐져있고, 데이터 링크 계층과 물리 계층이 네트워크 엑세스 계층으로 통합되어 있네요.

 

간단하게 설명드리자면 TCP/IP 4계층은 OSI 7 계층을 4개로 단순화하여 구현한 것이라고 보면 되는데요~

 

"현재 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 사용되는 프로토콜의 모음"이라고 보시면 됩니다. 

 

두 계층 모두 계층형이긴 하지만 TCP/IP 의 경우 지속적인 표준화로 신뢰성이 우수하지만 OSI 7계층은 표준이긴 하되 실제적으론 적은 구현으로 인해 신뢰성이 다소 낮아요~

 

OSI 7계층장비 개발, 통신 자체에 대한 표준으로 사용되지만, 실제 통신 자체는 TCP/IP 모델을 사용하고 있다고 생각하면 됩니다. 

 

그러므로, 네트워크 주제에 대한 포스팅은 TCP/IP 모델에서 어떠한 방식으로 통신이 이루어지는지, 계층 간 필수적으로 다뤄야 할 키워드에 집중하여 포스팅 할 예정이랍니다~

 

추가적으로 프로토콜이 뭔지 모르시는 분들도 계실겁니다! 아까 제가 예로 들었던 택배의 전달 과정 기억나시죠???

택배를 부칠 때 기본적으로 나와 상대방의 정보를 기입한다는 것은 이미 정해진 약속이라는 것을 아실겁니다. 

 

이처럼 통신에서도 서로 정해놓은 약속을 "프로토콜"이라고 부릅니다.

즉, 통신을 할 때 전달방식, 통신방식, 주고받을 자료의 형식, 전송 방식 등에 대하여 이미 정해진 통신 규약이라는 뜻이에요~ 일종의 약속! 

 

 

https://needjarvis.tistory.com/158

 

 

위의 그림은 계층별 프로토콜 종류입니다 ㅎㅎ TCP, UDP, HTTP, IP 등 익숙한 이름들이 많이 있네요ㅎㅎ

여기서 중요한 내용들은 순차적으로 포스팅해서 상세히 다룰 예정입니다~ 

 

그리고 아까 PDU 설명할 때 계층별로 데이터 앞에 헤더가 붙어진다고 설명드렸잖아요?? 

 

그때 TCP/UDP Header 와 IP Header와 같은 헤더 이름이 명시되어 있었는데 위의 그림을 보시면 프로토콜 정보에 TCP/UDP , IP  다 있죠?? 

 

"즉, 각 계층의 헤더의 정보가 그 계층의 프로토콜의 정보라는 거죠." 

* PDU는 Protocol Data Unit의 약자

 

이제 이해 되셨나요? ㅎㅎ


 

진짜 오랜만에 포스팅 하는거라 하루종일 잡고 있었네요 ㅠㅠ 😰😰

다들 이해가 잘 되셨을진 모르겠지만 도움이 되었으면 좋겠습니다 :) 

 

감사합니다! 

 

 

 

반응형

 

반응형

댓글