[네트워크] 개념 정리

2022. 6. 25. 14:40CS/컴퓨터 네트워크

  • circuit switching : 시작점부터 끝점까지, 정해진 경로를 특정 user를 위해 배분 (유선전화망)
  • packet switching : user에게 packet 단위로 받아 그때 그때 forwarding 해주는 것 (인터넷)
  • 인터넷은 유선전화망과 달리 계속 연결이 필요한 것이 아닌, 쉬는 타이밍이 계속 생기기 때문에 packet을 그때그때 처리하는 식으로도 충분히 데이터 전달이 가능하다.

 

※  packet delay

  1. nodal processing delay (노드처리지연) : 패킷의 bit error check와 determine output link를 packet을 통해 결정하는 과정에서 delay가 생긴다.
  2. queueing delay : 나가는 속도보다 들어오는 total 속도가 빠를 경우를 대비해 임시 buffer, 즉 나가는 packet이 대기할 수 있는 공간인 queue가 라우터에 존재. (자기 순서가 될 때까지 기다림)
  3. transmission delay : 첫 bit가 나가는 순간부터 마지막 bit가 온전히 link를 타는데 걸리는 시간 (L(packet length) / R(link bandwidth))
  4. propagation delay : link length / 빛의 속도

 

※  delay 개선 방법

  1. processing delay : 라우터 좋은 것(cpu 성능이 좋은)
  2. transmission delay : link의 bandwidth를 늘린다.
  3. queueing delay : 사람의 인터넷 이용 시간 밀집으로 인한 결과 (queue의 크기는 한정되어 있는데 그보다 많은 패킷이 오면 패킷을 떨궈버린다. (packet loss, 패킷 손실))

 

※  소켓 (socket)

  • 소켓끼리 연결한다는 의사 표현 중요 → 주소를 알아야한다. (index 필요) → IP Address 와 port가 그 역할을 한다.
  • IP Address : 어떤 host(컴퓨터)인지 / port : 어떤 process인지 (정확히는 그 process에 물린 socket)
  • 원래는 IP주소 + 포트번호를 입력해야 서버의 프로세스를 불러올 수 있지만, 실제로는 도메인 주소를 대신 입력

 

- 상위 계층은 하위 계층이 제공하는 기능을 사용한다.

- transport layer에서 제공해주는 기능은 data integrity(데이터 무결성) 뿐이다.

- timing(내가 보낸 패킷이 시간 안에 도착), throughput(1초에 어느 정도 양이 도달해야 한다.), security는 Application 계층에서.

 

 

1. Application layer

- HTTP(HyperText Transfer Protocol) :

  • request, response를 주고 받기 전에, TCP connection을 생성해야 한다. (Transport layer를 사용하기 위해)
  • stateless (요청 들어오면 읽어서 응답하고 끝, 기억 x)
  • non-persistent HTTP (TCP 연결을 메시지 주고받고 끊는 것) : 만약 html 파일과 그림 파일 10개를 요청했다고 치면,  request + response 가 html과 그림 10개 각각에서 일어나고 중간에 다시 연결해주는 과정이 11번 필요하다.

◆ 응용 계층 프로토콜 및 서비스
- 최종 사용자가 직접 사용할 수 있는 여러가지 프로토콜과 서비스를 정의
- TCP나 UDP가 제공하는 프로세스-프로세스 통신 서비스를 이용하여 유용한 기능을 수행
- 보통 사용자는 TCP/UDP에 직접 접속하지 않고 응용 계층을 이용하여 통신 서비스를 사용하며, 응용 계층 프로그램은 시스템 SW가 아닌 응용 프로그램으로 제공

 

·지원 프로토콜
- TCP 응용 계층 프로토콜 : FTP(20,21), HTTP(80), Telnet(23), SMTP(25), POP3(110), IMAP(143) 등
- UDP 응용 계층 프로토콜 : DNS(53), DHCP(67,68), SNMP(161) 등

 

◆FTP
- FTP는 인터넷에서 파일을 전송하는 기본 프로토콜
- 사용자 인증, Data의 전환, 디렉터리 검색 등과 같은 많은 기능 및 선택사항 제공
- FTP는 보통 Cli/Svr 관계를 이루며 동작
- 2개의 TCP 연결을 사용(Data 전달 시 : 20, 제어정보 전달 시 : 21)

 

◆HTTP
- 웹 상에서 웹 서버 및 웹 브라우저 상호간의 메시지 전송을 위한 응용계층 프로토콜
- 서버와 클라이언트 간에 하이퍼텍스트 문서를 송수신하는 프로토콜

 

· 주요 특징
- 요청 및 응답의 구조 : 동작형태가 Cli/Svr 모델로 동작
- 메시지 교환 형태의 프로토콜 : Cli와 Svr간에 HTTP 메시지를 주고받으며 통신(SMTP 프로토콜과 유사)
- 트랜잭션 중심의 비연결성 프로토콜 : 종단간 연결이 없고, 이전의 상태를 유지하지 않음
- 수송계층 프로토콜 및 사용 포트 : 수송계층 프로토콜로는 TCP를 사용하고, 사용포트번호는 80

 

◆DNS(참고 : ITBANK 리눅스2 8p)
- 호스트에 대한 이름 주소 변환을 위한 분산 DB시스템(IP와 Host이름이 서로 연결된 분산 구조화된 트리구조)
- DNS 질의 및 DNS 응답을 위한 사용 포트 및 수송용 프로토콜
→DNS를 위한 포트번호는 53이며, 대부분 UDP를 통해 전달
→메시지 크기가 512Byte이하이면 UDP 사용, 그 이상이면 TCP 사용

 

· DNS 구현 요소
- 도메인 이름 공간(Domain Name Space)
→도메인 이름 공간은 트리구조로 구성된 분산 DB
→각 도메인은 이름이 부여되고, 도메인 내에는 다시 하부의 서브 도메인을 가질 수 있음

 

- 네임서버(Name Server)
→일종의 프로그램으로써 Cli/Svr 메커니즘 구조에서 서버에 해당
→도메인 이름 공간에 대한 정보를 저장하며, 계층적으로 구성

 

- 변환기(Resolver)
→질의를 생성하며 네트워크를 통하여 서버로 질의를 전송하는 라이브러리 루팅
→클라이언트에 해당

 

◆DHCP
- 네트워크의 각 노드에 유일한 IP 주소를 자동으로 할당하고 관리하는 서비스
- 관리자는 DHCP로 IP 주소를 관리하는 시간과 노력을 크게 줄일 수 있을뿐만 아니라 IP 주소 할당 과정에서 발생할 수 있는 잠재적인 오류도 줄일 수 있어 네트워크의 효율이 높다.
- 네트워크상에서 동적으로 IP 주소 및 기타 구성정보 등을 부여/관리하는 프로토콜
- UDP 67,68번 포트

 

·DHCP 제공과정 : ①Discover ②Offer ③Request ④Ack
·DHCP 특징
①Cli/Svr 형태로 동적인 구성정보 요청 및 제공 프로토콜
- DHCP Cli(요청) 및 Svr(응답)가 동일 서브넷에 함께 있을수도, 서로 다른 망에 분리될 수도 있음

 

②프로토콜 및 포트
- 사용 포트 : 서버용 포트는 67, 클라이언트용 포트 68(임시 포트 사용 금지됨)

 

③주요 매개변수(구성정보)
- 장치가 연결되는 네트워크에 대해 필요한 정보들
- IP 주소, Subnet mask, Default gw, DNS IP 주소

 

④DHCP 요청과 응답 때 쓰는 주소
- IP 헤더 내 발신지 주소 : 0.0.0.0
- IP 헤더 내 목적지 주소 : 255.255.255.255(Broadcast 주소)
- 요청 받는 쪽에서는 Cli의 MAC주소를 기억, 이를 IP 주소와의 매핑 시 이용함

 

⑤매개변수 동적 할당
- 제한된 수량의 IP 주소를 '재사용', '한시적 사용', '자동 재활용'등 가능

 

⑥이전 프로토콜 및 역호환성
- RARP → 단점 : IP 주소만을 제공, 매 서브넷마다 브로드캐스트 방식 필요
- BOOTP와 역호환성
 →동적인 DHCP는 부팅 시 자동으로 구성정보를 구성하는 BOOTP와는 상호 호환되며, 아울러 보다 더 확장되고 진보된 형태를 띄고 있음
   ·BOOTP와 패킷 구조가 거의 동일
   ·BOOTP로 동작하는 호스트는 DHCP 서버에 의해 정적인 주소 설정이 가능
 → RARP의 두가지 약점을 보완하였으나, 정적인 프로토콜이라는 한계점을 갖음
   ·이미 준비된 고정된 IP 주소와의 바인딩만 가능(중간에 변경 불가능)

 

⑦서버의 구성정보 저장
- 보통 영구적 메모리에 구성정보를 저장함
 → 서버 재부팅시에도 클라이언트 기존 임대는 그대로 유지됨

 

·DHCP의 IP 주소 할당 방법 종류
- 수동 할당 : DHCP 서버의 관리자가 수동으로 고정 설정
- 자동 할당 : IP 주소의 영구적 독점 사용
- 동적 할당 : 제한된 수량의 IP 주소 재사용, 한시적 사용, 자동 재활용, 대부분 이 방법을 사용

 

·DHCP 동작 과정
- DHCP 프로토콜은 6개의 상태로 전이하며 동작을 하게 됨
- 동작 과정별 설명
 →Initialize(DHCP 서버를 찾는 과정) : Cli는 DHCP Discover 메시지를 Broadcast
 →Selecting : 이를 수신한 다수의 DHCP서버들은 모두 DHCP Offer 메시지(IP 주소 및 임대 시간이 들어있 음)로 응답
 →Request : Cli는 여러 응답 서버로부터 수신된 DHCP Offer 메시지 중 하나를 선택, 해당 서버에게 DHCP  Request 메시지 송신
 →Bind(Bound) : 서버에서는 DHCP Ack로 응답, 이에 딸려온 IP 주소를 사용(3가지 타이머 값이 설정 -
 Least Renewal Timer, Rebinding Timer, Lease Duration Timer)
 →Cli는 서버로부터 받은 IP 주소에 대해 ARP 브로드캐스트를 통해 사용 중 여부 검사
 →ARP 응답이 오면, 중복 주소로 간주하여 제안된 IP 주소를 무시하고 DHCP Decline 송출
 →정상적인 종료인 경우, Cli는 DHCP Release로 해제
 →Renewing(재연장, 갱신) : Cli는 할당받은 IP 주소 정보의 임대시간의 만료의 50%가 지난 후 임대 예약