본문 바로가기

CS

컴퓨터네트워크 기술면접 준비

컴퓨터네트워크 기술면접 준비

- 계층을 나누는 이유 : 통신 일어나는 과정 중 특정 부분에 이상이 생기면 그 단계만 수정하면 됨

- 물리적 계층 : 리피터, 케이블, 허브, 전기적 신호로 변환해서 주고받는 기능을 함 
- 데이터링크 계층 : 브릿지, 스위치, MAC 주소를 통해 통신, 프레임에 MAC주소 부여하고 에러검출, 재전송, 흐름제어
- 네트워크 계층 : 라우터, IP, 라우터를 통해 이동 경로를 설정하고 IP 주소를 지정하고 경로에 따라 패킷 전달, 라우팅 흐름제어 오류제어 세그멘테이션
- 전송 계층 : TCP, UDP, TCP와 UDP 프로토콜로 통신을 활성화 함. 포트를 열어두고 프로그램들이 전송할 수 있게 함
- 세션 계층 : API, 소켓, 데이터가 통신하기 위한 논리적 연결 담당. TCP/IP 세션을 만들고 없앰
- 표현 계층 : JPEG, MPEG, 파일 인코딩, 명령어 포장, 압축, 암호화
- 응용 계층 : HTTP, FTP, DNS, 응용 프로세스와 직접 관계하여 일반적인 응용서비스 수행

- 3way handshaking
  1. 클라이언트가 서버에게 SYN을 보냄
  2. 서버가 SYN(x)를 받고 클라이언트에게 ACK 과 SYN 패킷을 보냄
  3. 클라이언트는 서버의 응답 ACK(x+1)과 SYN(y)를 받고 ACK(y+1)을 서버로 보냄 - 연결 완료

- 4way hanndshaking
  1. 클라이언트가 서버에게 FIN 플래그를 보냄
  2. 서버는 FIN을 받고, ACK을 보냄, 이때 모든 데이터를 보내기 위해 timeout 상태가 됨
  3. 데이터를 모두 보내면 FIN 플래그를 클라이언트한테 보냄
  4. 클라이언트는 FIN을 받고 확인 했다는 ACK을 보냄, 아직 데이터를 안 받았을 수도 있어서 time_wait로 기다림

- reliable network 문제점
  1. loss 2. 패킷 순서 바뀜 3. congestion 4. receive가 overload 되는 문제

- 흐름제어 : 송신측 속도가 수신 속도보다 빠르면 수신 용량 초과 이후 도착한 데이터는 손실될 수 있음
  stop and wait : 전송한 패킷에 대해 확인 응답을 받아야 그 다음 패킷을 전송
  sliding window : go back N, selective repeat

- 혼잡제어 : 한 라우터에 데이터가 몰리면 모든 데이터를 처리할 수 없어서 다시 재전송을 하며 혼잡 가중, 오버플로우나 데이터 손실 발생
  
- AIMD : 윈도우 크기를 1씩 증가시킴, 실패하거나 timeout 시 패킷 보내는 속도를 절반으로 줄임,
  나중에 진입하는 쪽이 불리하지만 시간이 흐르면서 평형상태로 수렴해서 fair 함
  초기에 높은 대역폭을 사용하지 못하면 오랜시간이 걸림, 혼잡해지고 나서야 대역폭을 줄이는 방식임

- slow start : ACK을 받을 때마다 전송속도가 두배가 됨. 지수함수 꼴로 증가. 혼잡 현상 발생 시 윈도우 사이즈 1로 떨굼
  혼잡 현상이 발생했던 그 사이즈 절반까지는 지수함수 꼴로 증가하고 그 이후부터 완만하게 1씩 증가

- fast retransmit : 3dup ACK
  먼저 도착할 패킷이 안오고 다음 패킷이 도착해도 ACK을 보냄, 순번이 중복된 ACK을 보내게 됨 이걸 감지하면 재전송

- fast recovery : 혼잡상태가 되면 윈도우 사이즈를 1로 줄이지 않고 반으로 줄인 뒤 선형 증가

- UDP : 데이터그램 단위로 처리하는 프로토콜, 비연결성, 신뢰성 없는 전송 프로토콜
  신속성, 처리가 빠름, 실시간 방송이나 온라인 게임에서 사용
- UDP header : 소스 포트, dest 포트, 길이, checksum

- IP는 호스트와 호스트간의 지원, 장치에서 장치 이동은 해결되는데, 장비 내의 프로그램 통신에서는 한계 -> 포트번호가 나옴
  IP에서 오류가 발생하면 ICMP에서 알려주는데, 해결은 못해줘서 IP 보다 위에서 처리해줘야됨 -> TCP, UDP가 나옴
- ICMP : 인터넷 제어 메시지 프로토콜, 네트워크 컴퓨터 위에서 돌아가는 운영체제에서 오류 메시지 전송받는데에 쓰임

- TCP : 데이터 분실, 중복, 순서바뀜 등을 자동으로 보정해서 송수신 데이터의 정확한 전달을 하게 함
  UDP : IP가 제공하는 정도의 수준만 제공하는 간단한 IP 상위 계층 프로토콜

- DNS에서 UDP 사용 : request 양이 적어서 UDP 에 담길 수 있고, 연결 유지 안해도 됨, 
  request 손실을 응용 계층에서 제어할 수 있음, DNS 포트 53번임. 크기가 512를 넘을 때 TCP 사용

- HTTP : 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약
  텍스트 교환이라서 누가 중간에 가로채면 내용이 노출되는 보안 이슈가 있어서 HTTPS 사용
- HTTPS : 인터넷 상에서 정보를 암호화 하는 SSL 프로토콜을 사용해서 클라이언트와 서버가 자원을 주고받을 때 쓰는 통신규약
  공개키 암호화 방식으로 텍스트를 암호화 함





'CS' 카테고리의 다른 글

운영체제 기술면접 준비  (0) 2020.11.20
데이터베이스 기술면접 준비  (0) 2020.11.20