네트워크

1. OSI 7 layer와 각 계층 설명

  1. Physical layer: 물리적 특성을 이용해 통신 케이블로 데이터를 전송. (단위: bit) (장비: 케이블, 리피터, 허브)
  2. Data Link layer: MAC address 기반으로 물리적 연결 과정에서 생기는 오류 검출, 흐름 제어 등을 수행. (단위: frame) (ex: 이더넷)
  3. Network layer: 논리적 주소인 IP address를 담당하며, 패킷의 전달 경로를 결정. (단위: Packet) (ex: Router)
  4. Transport layer: End to End간 메시지 전송에서 오류 검출과 흐름 제어를 담당. (단위: Segment) (ex: TCP, UDP)
  5. Session layer: 양쪽 Host 간 연결을 수립/유지/종료시키는 역할
  6. Presentation layer: 코드 간의 번역을 담당.
  7. Application layer: 사용자에게 통신을 위한 서비스 제공. 인터페이스 역할.

2. TCP/IP 프로토콜과 각 계층 설명

TCP/IP 프로토콜은 네트웍액세스 계층, 인터넷 계층, 트랜스포트 계층, 응용 계층의 4개의 계층으로 구성.

  1. 네트웍 액세스 계층은 IP 패킷의 물리적인 전달을 담당하는 서브네트웍 기능을 제공하며 dial-up 회선, LAN, X.25 패킷망 등이 여기에 해당된다.
  2. 인터넷 계층은 비연결형 서비스 즉, 데이터그램 방식으로 호스트 사이에 IP 패킷을 전달하는 기능과 라우팅 등을 수행한다.
  3. 트랜스포트 계층은 호스트 사이의 종점간 연결을 제공하고 종점간의 데이터 전달을 처리한다.
  4. 응용 계층은 TCP/IP 프로토콜을 이용하는 응용 서비스로서 TCP 또는 UDP가 지원하는 응용으로 각각 구분할 수 있다.

image

3. TCP의 특징

4. SSL

Secure Socket Layer로 인터넷을 통해 전달되는 정보를 보호하기 위해 개발한 통신 규약. HTTPS는 HTTP 에 SSL과 같은 보안 계층을 제공한다.

5. 3way hand shaking

TCP의 연결을 초기화 할 때 사용

6. 4 way hand shaking

7. TCP 연결 끊김 탐지

8. HTTP의 특징

9. www.example.com까지의 접속 과정

  1. 호스트 네임을 통해 DNS에서 IP주소를 받아온다.
  2. IP주소를 통해 서버와 커넥션을 맺는다.
  3. 서버는 받은 요청에 따라 이를 처리하고 브라우저가 볼 수 있는 HTML을 구성해 브라우저에게 준다.
  4. 브라우저는 HTML을 해석해 화면에 띄운다.

10. Get과 Post의 차이점

11. TCP와 UDP의 차이

프로토콜 종류 TCP UDP
연결 방식 연결형 서비스 비연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 전송 순서 보장 전송 순서가 바뀔 수 있음
수신 여부 확인 수신 여부 확인 수신 여부 확인하지 않음
통신 방식 1:1 통신 1:1 or 1:N or N:N 통신
신뢰성 높다 낮다
속도 느리다 빠르다

12. SYN Flooding 공격 설명, 방어 방법

client가 server로 연결 요청(SYN)을 보내면 server가 백로그 큐에 저장하는데, 큐가 가득 차게 되면 더 이상 요청을 받을 수 없게 된다. Denial of Service(Dos) attack 중 하나이다.

해결방법
1) Cookie 사용: 서버가 SYN+ACK 메시지를 보낼 때 SYN Cookie도 함께 보낸다. 일정 시간 동안 해당 쿠키에 대한 응답 패킷이 오지 않는다면 방화벽에서 차단한다.
2) 타임아웃 시간을 짧게 잡아 백로그 큐를 계속해서 비워줄 수 있다.

13. 로드 밸런싱

여러서버에 트래픽 분산 시켜주는것.

14. 싱글스레드 서버와 멀티스레드 서버 예시

15. 흐름제어 방식이 뭔지 그리고 대표적인 방식 설명

흐름제어란 종단 시스템간 통신에서 패킷의 흐름(속도)을 제어하는 것을 의미한다.

16. 서브네팅이란?

IP주소를 효율적으로 사용하여 낭비를 막기 위해서

서브넷 마스크는 네트워크 아이디와 호스트 아이디를 구별하는 구분자 라고 생각하시면 편합니다.

Broadcast Domain에 많은 호스트가 연결된 경우 호스트에 발생한 Broadcast Traffic이 모든 호스트에 전달되어 많은 Broadcast Traffic이 발생한다.

하나의 Broadcast Domain 서는 보안이 취약하기 때문에 Firewall이나 ACL과 같은 정책을 구현하기 위해서는 Network Segment를 나누는 것이 효율적이다

Subnet을 나누기 위한 작업:

  1. Host or Subnet 수를 파악 후 Subnetmask를 변경한다.
  2. 변경된 1bit 부분을 2진수로 순서대로 쓴다.
  3. 나온 수에 Host ID에 모두 0bit를 입력하면 Subnet에 Address가 나온다.
  4. Host ID 부분을 모두 1bit로 처리 하면 Subnet Broadcast Address이다.

17. ARP란?


18. VLAN이란?

19. 스위치와 라우터 차이 설명

스위치는 2계층, 라우터는 3계층 장비이다. 스위치는 MAC 주소를 기반으로 통신 노드와 노드 사이의 경로를 지정한다.
라우터는 IP 주소를 기반으로 목적지 호스트까지의 최단 경로를 결정한다.

20. ARQ란?

21. Http method 4가지

GET: 데이터 조회 POST: 데이터 추가 PUT: 데이터 갱신 DELETE: 데이터 삭제

22. REST란?

23. CORS란?

Cross Origin Resource Sharing이라고 하는데, 클라이언트에서 다른 domain의 서버에 요청을 보내는 기술이다. 해당 domain의 서버의 응답헤더와 클라이언트의 요청헤더 모두 CORS를 허용한다는 옵션을 가지고 있어야 한다.


24. www.example.com에 접속하는 과정 설명

  1. 네트워크 초기화 과정(DHCP 서버로부터 IP주소 받기)
  2. DNS 서버에 호스트 이름으로 IP 주소 질의 (클라이언트측 캐시에 정보가 있으면 건너뜀)
  3. IP 주소로 웹서버에 TCP 3 handshake로 연결 수립
  4. 클라이언트는 웹서버로 HTTP 요청 메시지 보냄.
  5. 웹서버는 HTTP 응답 메시지 보냄.
  6. 연결 종료.

25. DHCP란?

26. SSL 통신 과정 설명

27. http2.0 설명

28. 프록시 서버의 기능

29. unicast, multicast, broadcast 설명

30. 웹 소켓 설명

31. XSS란?

32. Big endian, Little endian 설명

33. sliding window

34. 이더넷 설명

35. ATM이란?

36. 패킷교환/회선교환 설명