CS(computer science) 지식/데이터통신

[데이터통신] 네트워크란 무엇인가? (1)

QueryJun 2023. 2. 3. 16:13

네트워크

- 호스트<->호스트, 노드<->노드, 단말<->단말과의 연결을 의미

 

1.  naver.com 에 접속하기 위한 과정

 

1. (www.naver.com)은 도메인 네임으로 되어있기 때문에 DNS에 도메인을 검색하기 위한 요청을 보냄

2. DNS 서버는 해당하는 ip 주소를 응답

3. 받은 ip주소를 사용하여 TCP통신을 통해 해당 ip서버에 요청을 보냄

4. 요청 받은 서버(www.naver.com)는 요청 내용에 대해 응답 메시지를 만듬

5. 응답메시지를 TCP통신을 통해 다시 클라이언트에게 전송

6. 브라우저는 받은 응답을 HTTP 프로토콜을 사용하여 웹페이지를 구성하여 사용자에게 보여준다.

 

2. Protocol

- 두 Host 간 데이터를 교환하는 양식과 규칙의 쳬계

- e.g. ICMP, DNS, FTP, HTTP, TCP/IP, UDP

- Internet Protocol은 Layering되어 이용

   ㄴ 상위계층의 Protocol은 하위계층의 Protocol과 결합되어 사용된다.

- OSI 7 Layer 기준 상위 계층은 하위 계층의 Protocol을 이용해 새로운 Protocol을 수립

 

3. Network Layer

- 두 Host간 어떻게 데이터를 전달할 수 있을지 다루는 계층 (IP 주소(Address) 지정과 경로(Routing) 지정으로 구성)

- 비신뢰성 : 전송을 보장하지 않는다 -> (전송 여부, 순서, 중복 이슈)

- 비연결성 : 전송을 위해서 연결을 전제로 하지 않음

 

1) IP Address

- 현재 두가지 버전이 상용 ( IPv4(IP version 4), IPv6(IP version 6) 상호 호환)

- 주소는 목적에 따라 분류 (특수 주소, 사설 주소, 공용 주소)

 

4. TCP/IP

- IP는 전송 신뢰성이 없어 실제 응용에서는 IP에 의존해서 통신을 하기는 어렵다

- 호스트와 호스트 간의 데이터 전송은 IP에 의존하면서 동시에 '신뢰성'은 TCP가 책임진다.

- 또한 신뢰성 있는 전송에 더불어 연결 지향 링크 서비스 제공

   ㄴ 명시적으로 연결하고, 데이터를 주고 받고, 종료

   ㄴ port의 개념을 도입하여 Host와 Host 간에 다양한 층위의 통신이 가능하도록 보장

 

1) 3-way handshake

Client > Server : TCP SYN

Server > Client : TCP SYN ACK

Client > Server : TCP ACK

 

- 여기서 SYN은 'synchronize sequence numbers', 그리고 ACK는'acknowledgment' 의 약자이다.

 

2) Fire & Ack

- Server 시퀀스 넘버를 통해 Client에게 제공

 

3) Head of Line Blocking(HOL) Problem

- TCP 성능의 결점 : 수신 측에서는 중간에 데이터를 받지 못할 경우 이외 데이터를 무시하게 되는 이슈

    ㄴ 해결방안 : 패킷을 더 잘게 찢거나, UDP를 더욱 신뢰성 있게 보냄

 

5. UDP

- IP에 별도의 기능없이 사용자 정의 데이터 + Port를 전송할 수 있을 정도의 기능이 추가된 Protocol

- 전송 데이터의 길이와 Checksum으로 Datagram 단위를 정의할 뿐 보장하는 기능은 없음

- 초경량으로 Overhead가 거의 없고 재조립 등의 기능이 없어 Latency(지연 속도)에 극히 유리

 

5. TLS

- TCP 계층까지는 본질적으로 암호화 등의 보안 기능을 제공하지 않는다.

   ㄴ 네트워크에 물리적/소프트웨어적으로 접근 가능한 사람은 누구나 Packet을 살펴볼 수 있음

- 이에따라 통신을 위해서는 암호화 등의 보안 기능을 제공하는 Layer가 필요

- 과거 SSL(Secured Socket Layer)이라고 불림

- Cleint와 Server는 통신에서 대칭키 암호화에 이용할 암호키를 안전하게 교환하고 서로의 신원 확인
   ㄴ 신원 확인을 위해 인증서 교환, Diffie-Hellman 알고리즘 등을 통해 대칭키 암호화용 암호키를 전달하는 과정

 

 

반응형