본문 바로가기
IT/Digital

http와 tcp/ip 정리

by 청바지 입고 개발자 2021. 5. 15.
반응형

최근에 응용 개발자 한 분이 "대외계 통신할 때 Http를 쓰나요? tcp/ip를 쓰나요? "라고 질문을 하셨는데 http쓰시면되여 라고 했는데 뭔가찝찝
좀 쉽게 설명해 드리고 싶었는데 머리 신호가 정지

평소에 네트웍 이슈가 있을 때마다 구글링 해서 찾아볼 때가 있는데 다시 한번 머릿속에 정리할 겸 작성해 보았습니다.

TCP/IP의 설명

TCP(Transmission Control Protocol) 는 전송을 제어하는 프로토콜로, 신뢰도가 높은 데이터 전송을 가능하게 합니다.

TCP는 애플리케이션이 전송한 데이터를 그 형태 그대로 상대방에게 확실하게 전달합니다. TCP는 서버가 송신할 때와 서버가 수신한 후 애플리케이션에게 전달할 때로, 상대 서버까지 전송하는 부분은 하위 계층이 IP에 모두 위임됩니다.

TCP가 하는 일

- 포트 번호를 이용해서 데이터 전송

- 연결 생성

- 데이터 보증과 재전송 제어

- 흐름 제어와 폭주 제어

IP(Internet Protocol)는 지정한 대상 서버까지 전달받은 데이터를 전해는 것입니다.

IP가 하는 일

- IP주소를 이용해서 최종 목적지에 데이터 전송

- 라우팅

네트워크 책에서 엄청 이야기가 나왔던 OSI 7계층에서 TCP/IP는 4 계층(TCP는 4 계층, IP는 3 계층에 속합니다.)이라고 보시면 됩니다.  요즘은 웹 서비스에 맞게 단순화시켜서 TCP/IP 4 계층이 존재합니다. 아래 하단 이미지 참고

Http의 설명

HTTP는 최상위 계층인 애플리케이션 계층에 동작합니다. 개념적으로만 봤을 때 HTTP는 TCP/IP 계층 위에 동작하는 것이라고 볼 수 있습니다. (개발자분 입장에서는 Http로 통신하나요?라고 묻는 게 좀 더 정확한 질문이었을 것 같네요.) 애플리케이션 계층에는 http 말고도 smtp, IMAP 등의 다양한 프로토콜이 사용될 수 있습니다.

TCP/IP 4계층 모델 출처 : 그림으로 공부하는 IT인프라 구조

http의 요청(Request)과 응답(Response)

Htpp 요청 시 중요한 것은 서버에 던지는 명령어입니다.

Get은 파일 요구

Post는 데이터를 전송

헤더 부분에 들어가 있는 정보 : User-Agent 브라우저 식별 정보(버전, 브라우저 유형), Cookie(세션 식별자)

아래 그림은 크롬 브라우저에서 F12로 개발자 모드를 열고 Network탭에서 확인한 Requset 정보입니다. 이 글을 임시 저장할 때 날아가는 요청의 모양인데 Post형식으로 요청됨을 알 수 있습니다. 자세히 보면 날라가는 Contents내용도 보이네요.

지금 이글을 쓰고 임시저장할 떄 날라가는 http 해더 정보

실무에서 사용하는 용어 정리

이더넷 계층 - L2 또는 레이어 2

전송계층(TCP 계층) - L4 또는 레이어 4

애플리케이션 계층 - L5, L6, L7

OSI참조모델

우선 네트워크를 다룰 때 피해 갈 수 없는 부분이 OSI참조 모델입니다. 현재 사용되고 있지는 않지만, 이 계층 구조 개념은 논리적으로 한 번은 이해해야 합니다. 결국 네트워크에 물리적으로 있는 물리 계층부터 애플리케이션까지 여러 단계에 걸쳐서 통신을 위한 계층들이 존재하고 아래 모델을 참조로 실무 커뮤니케이션에서 사용한다 정도만 알아 주시면 될 것 같습니다.

OSI 참조 모델

네트웍 쪽도 책을 찾아보고 관련 정보를 검색하다 보니 좀 더 자세하게 보아야 하는 부분들이 많네요.

중요하게 더 정리해야 되는 내용이 있으면 또 포스팅하겠습니다.

오늘은 http와 tcp/ip에 대해서 한번 정리해 봤습니다.

반응형

댓글