OSI계층 , TCP/IP 모델 쉽게 알아보기

Harry The Great
해리의 유목코딩
5 min readSep 11, 2019

이전에 로드밸런싱과 관련한 포스팅에서 어플리케이션 로드 밸런싱과 클래식 로드 밸런서가 OSI 계층에서 다르다고 언급을 한 적이 있는데 OSI를 함께 조금 더 쉽게 풀어주면 좋을것같다는 피드백을받아 포스팅을 작성하게됐습니다. 제가 아는 범위에서 간략이 작성하였지만 최대한 쉽게 작성하였습니다.😥😥

OSI 참조모델은 컴퓨터와 컴퓨터 사이의 데이터전송을 분류한 모델입니다. 조금 어렵게 표현하여 각 계층은 다른 계층에 대해 알 필요가 없이 자신의 계층에서 캡슐화와 은닉(숨기기)가 가능합니다.

그렇다면 TCP/IP 모델은 무엇일까요? 우리가 범용적으로 사용하는 TCP 프로토콜과 IP 프로토콜을 OSI 7계층 형식에 맞추어 더 추상화(혹은 간략화) 시킨 모델입니다. 그럼 TCP/IP모델을 통해서 실제 네트워크가 이루어지는 과정을 도식화 해보겠습니다.

어플리케이션 레이어(TCP/IP 4계층에 해당)

이름이 헷갈릴 수 있어 TCP는 끝에 레이어를 OSI는 계층으로 단어를 사용하겠습니다.

어플리케이션계층(OSI 7계층에 해당)

우리가 흔히 주소창에 생략하는 http는 전송프로토콜을 의미합니다. 내가 http라는 어플리케이션 프로토콜을 이용해서 도착지에 데이터를 보내겠다는 뜻이며 요청과 동시에 표현계층으로 이동합니다.

표현계층(OSI 6계층에 해당)

표현계층에서는 데이터를 가공/처리를 담당합니다. 만약 https 보안프로토콜을 사용한다면 어플리케이션계층의 데이터를 암호화하거나 혹은 바이너리로 들어온 데이터들을 JPG, PNG등 확장자에 맞추어 우리가 볼 수 있는 형식으로 변경해줍니다.

세션계층(OSI 5계층에 해당)

데이터의 무결성이나 신뢰성을 확인하는 단계로 네트워크 계층을 위해 데이터를 끊어주거나 확인해준다 라고 이해하면 쉽습니다.

전송레이어

이미지에는 계층으로 들어갔어도 이해바랍니다 ㅠㅠ

어플리케이션 레이어에서 데이터를 받은 전송계층은 현재 TCP 프로토콜을 이용하며 세션데이터로부터 적당한 크기로 받은 데이터를 잘게 쪼갠 후 일련번호를 부여합니다. UDP도 이 계층에 속하지만 TCP와 다른점은 데이터의 순서를 붆하고 일련번호(연속성)을 부여하지 않기 때문에 순차성,안정성을 보장하긴 힘들지만 속도가 상당히 빠릅니다.

인터넷레이어

데이터를 받은 인터넷 레이어에서 IP 프로토콜을 통해 라우터들을 이동하며 목적지로 전달됩니다.

네트워크 인터페이스

도식화에는 너무 복잡하여 담지 못한 부분입니다.

위 두 단계가 클라우드를 사용했을 경우 개발자들이 신경 쓰지 않아도 되는 부분이며 점점 시대가 갈수록 중요성이 떨어지는 부분입니다. 일반적인 기업에서의 전산팀이 바로 이 6,7계층을 담당하게됩니다.

데이터링크계층

이런 데이터링크계층의 대표적인 프로토콜이 이더넷이며 흔히 듣는 브릿지, 스위치와 같은 장비가 해당합니다. 그리고 물리계층이 랜선 허브와 같은 실제 물리적인 영역에서의 장비들입니다.

물리계층

랜선, 허브등과같이 실제 물리적인 영역에서의 데이터계층입니다.

계층별 데이터

각각의 레이어를 거치면서 데이터의 양은 더 많아집니다. 맨 처음 언급했던것처럼 상위계층으로부터 받은 데이터는 관여하지않고 자신의 계층에서의 추가 데이터만 계속 늘어 가게 됩니다.

ALB에서의 OSI 모델

이전에 로드밸런싱글과 관련하여 클래식 로드밸런서는 4레벨에서 작동한다어플리케이션 로드밸런서는 OSI 7레벨고 설명드렸습니다. 다시말하면 클래식 로드밸런서는 어떤 요청값이 있으면 그 값을 다른곳으로 전달해주는 역활만합 니다. 80번 포트로 들어오는 건 똑같이 80번 포트로 또 /user/1로 들어오는 요청은 똑같이 /user/1로 전달하게됩니다.

하지만 OSI 7레벨에서 작동하는 로드밸런서는 포트를 받아 다른 포트로 변경하여 보내거나 혹은 /user/1로 들어오는 데이터를 원하는곳으로 변경하여 전달할 수 있습니다. 그 이유는 http 프로토콜상에서 작동하기 때문이고 4레벨에서 작동하는경우 http의 데이터를 접근하거나 가공할 수 없습니다.

마치며

클라우드로 넘어갈수록 이런 네트워크나 저장소 혹은 서버단의 중요성이 많이 감소하여 중요도는 떨어지지만 모르는것보단 알고있는게 조금은 더 편한 내용이었습니다.

--

--

Harry The Great
해리의 유목코딩

Android & IOS Developer 😀 미디움 이외에 스니펫이나 디버그노트로 활용하는 https://www.harrymikoshi.com/ 블로그도 운영하고있습니다.