본문 바로가기
코드스테이츠

3/6 일일정리 네트워크

by 강물둘기 2023. 3. 6.

IP(Internet Protocol)

인터넷 프로토콜은 송신자와 수신자가 패킷 교환 네트워크에서 정보를 주고받는 데 사용하는 정보 위주의 규약이다.

IP는 지정한 IP주소에 패킷이라는 송신 단위로 데이터를 잘게 쪼개서 전달한다. 각각의 패킷은 IP정보를 가지고 있기 때문에 이 정보를 바탕으로 여러 노드들과 라우터가 패킷을 올바른 위치로 전달한다. 따라서 송신자가 경로를 설정하지 않아도 자동으로 목적지까지 이동할 수 있다.

IP는 비연결성과 비신뢰성이 특징이다.

비연결성은 송신자와 수신자가 연결되어 있지 않은 특성을 말한다. 수신자가 데이터를 받는 것이 불가능한 상태여도 송신자는 데이터를 보낼 수 있다. 이 경우 물론 응답은 받을 수 없다.

 

비신뢰성은 데이터 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다는 것을 말한다. 패킷은 여러 노드들을 거쳐 가는데 중간에 노드 서버 하나가 다운되어서 패킷이 소멸하는 경우도 있다. 또한 먼저 보낸 데이터가 먼저 도착할 것이라는 보장도 없다.

 

* 패킷 전송과 정확한 순서를 보장하려면 TCP 프로토콜같은 상위 프로토콜을 이용해야 한다.

 

TCP / UDP

출처 : https://shjz.tistory.com/98

TCP(Transmission Control Protocol)

IP의 한계를 극복하기위해 TCP/IP 프로토콜을 사용하여 패킷을 전달한다.

TCP는 전송 제어 프로토콜로 다른 컴퓨터와 통신하기 위한 규약이다. 보통 IP와 묶여서 TCP/IP로 표현하는 경우가 많다.

 

TCP는 IP와 다르게 상대와 연결을 설정하고 통신을 시작한다. 송신자가 수신자에게 연결을 하겠다는 정보를 보내고, 수신자가 통신이 가능한 상태라면 그 정보를 다시 송신자에게 보내 연결을 설정한다. 이렇게 연결을 하면 IP의 한계인 비연결성을 보완할 수 있다.

 

송신자가 패킷을 보내는데 수신자 입장에서 제대로된 순서로 패킷을 받지 못하면 (TCP 세그먼트의 정보를 토대로)수신자 입장에서 송신자에게 연결이 잘못된 패킷부터 다시 보내 달라고 요청할 수 있다. 이를 통해 IP의 비신뢰성을 보완할 수 있다.

 

UDP(User Datagram Protocol)

UDP는 사용자 데이터그램 프로토콜로 TCP와 비슷하게 IP를 보완하기 위한 상위 프로토콜이다.

TCP의 경우 신뢰성은 높지만 속도가 느려진다는 단점이 존재한다. 동영상을 예로 들면 실시간으로 다운받아서 보는 동영상에서 도트하나가 소실되면 그 도트를 받을때 까지 영상이 중지된다.

UDP는 신뢰성을 포기하는 대신 연속성이 중요한 작업(실시간 스트리밍이나 온라인 게임 등)에서 쓰인다.

 

 

네트워크 계층 모델

OSI 7계층 모델

출처 : https://movefast.tistory.com/22

OSI 모델은 1984년 ISO라는 국제 표준화 기구에서 발표한 네트워크 표준 규격이다.

 

목적

⓵ 표준화를 통하여 포트, 프로토콜의 호환 문제를 해결하기 쉽다.

⓶ 네트워크 시스템에서 일어나는 일을 계층을 통해 쉽게 파악할 수 있다.

⓷ 문제가 발생했을 때 각 계층을 파악해 범위를 좁혀 문제를 해결 할 수 있다.

 

계층 역할

1계층(물리 계층) : 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어하는 계층이다.

                           ex) 디지털 또는 아날로그 신호 변경

2계층(데이터링크 계층) : 네트워크 기기 간의 데이터 정송 및 물리주소(ex.MAC주소)를 결정하는 계층이다.

                           ex) 브리지,스위치, MAC 주소

3계층(네트워크 계층) : 실제 네트워크 간에 데이터 라우팅을 담당한다.

                           ex) IP 패킷 전송

4계층(전송 계층) : 컴퓨터간 신뢰성 있는 데이터를 서로 주고받을 수 있도록 하는 서비스를 제공하는 계층이다.

                           ex) TCP/UDP 연결

5계층(세션 계층) : 세션 연결의 설정과 해제, 세션 메시지 전송 등의 기능을 수행하는 계층이다.

                           

6계층(표현 계층) : 응용 계층으로 전달하거나 전달 받는 데이터를 인코딩 또는 디코딩하는 계층이다.

                           ex) 문자 코드, 압축, 암호화

7계층(응용 계층) :  최종적으로 사용자와의 인터페이스를 제공하는 계층이다.

                           ex) 이메일, 파일전송 , 웹 사이트 조회

 

OSI 모델은 송신측의 7계층과 수신 측의 7계층을 통해 데이터를 주고받는다. 

 

TCP/IP 4계층 모델

TCP/IP 4계층 모델은 OSI 7계층 모델을 기반으로 실무적으로 이용할 수 있도록 현실에 맞춰 단순화된 모델이다.

 

현대의 인터넷 표준은 TCP/IP 4계층 모델을 바탕으로 한다.

 

HTTP

응용계층의 대표적인 프로토콜이 HTTP이다.

HTTP(HyperText Transfet Protocol)는 문서와 같은 리소스들을 가지고 올 수 있게 해주는 프로토콜이다.

 

HTTP의 특징

⓵ 클라이언트 - 서버 구조

요청 메시지를 보내는 클라이언트와 응답을 보내는 서버로 구성되어 있다.

 

⓶ 단순함, 확장 가능성

 HTTP는 구조가 단순하고 필요에 따라 헤더의 내용을 추가할 수 있기 때문에 확장에 용이하다.

 

⓷ 무상태성(Stateless)

 HTTP는 서버와 클라이언트의 상태를 저장하지 않는다. 이러한 무상태성은 서버를 확장하는데 용이하지만, 클라이언트가 추가정보를 전달해야 한다는 단점도 존재한다. 최소한의 상태를 유지하기 위해 쿠기, 세션 , 토큰 등을 활용한다.

 

⓸ 비연결성

 HTTP는 요청과 응답을 주고 받을때만 연결을 유지하고 이후에는 TCP/IP 연결을 끊는다. 트래픽이 적을때는 효율적이지만 트래픽이 많아지면 요청을 할 때 마다 연결을 다시 해야하기 때문에 리소스가 더 들어간다. HTTP 지속연결(Persistent Connections)로 이러한 문제를 해결할 수 있다.

 

 

HTTPS

출처 : https://jminie.tistory.com/104

HTTPS는 HTTP Secure의 약자로 HTTP 요청과 응답을 암호화 한 프로토콜을 말한다.

HTTP로 보내는 요청은 다른사람이 확인할 수 있기 때문에 암호화를 한 HTTPS를 사용한다.

HTTP 통신을 하는 소켓 부분에서 SSL 혹은 TLS라는 프로토콜을 사용하여 서버 인증과 데이터 암호화를 진행한다.

SSL/TLS는 CA를 통한 인증서 사용, 대칭키, 공개 키 암호화 방식을 모두 사용한다.

 

 

Reference

- 위키백과

- MDN

- https://movefast.tistory.com/22

- https://shjz.tistory.com/98

댓글