Client: 컴퓨터 네트워크에서 통신을 먼저 시작하는 주체
Server: 컴퓨터 네트워크에서 요청에 대한 응답을 하는 주체. 항상 대기상태로 준비(deamon)
1:M 도 가능 (서버는 여러 클라이언트의 요청 처리 가능)
RARP 를 대체하기 위해 등장
DHCP 전신이고, 호환됨
ex) 기능 부족 - 네트워크 설정에서 DNS static 으로 설정할 수 없음
각 노드에 TCP/IP 정보를 자동으로 할당해주는 네트워크 프로토콜 (UDP 포트: 67, 68)
사용 목적
DHCP 서버로부터 네트워크 정보를 받아오기 때문에 네트워크 설정을 빠르게 전달하는데 유용함
따라서 여러 시스템의 IP 주소 변경 시 모든 시스템을 재설정할 필요없이 서버에서 새로운 세트의 IP 주소에 사용될 한 개의 DHCP 설정 파일 편집하고 재부팅하면 끝
동작 과정
*보안 관련문제
공인되지 않은 DHCP 서버, 클라이언트로 인해 클라이언트에게 응답할 때 가짜 정보 제공하거나 DHCP 서버가 가지는 IP 주소를 모두 소모시키는 가짜 요청을 발생시키는 등의 문제가 있을 수 있음 (보안 위해 IPSec 등 이용)
도메인 -> IP 시스템
FQDN(Fully Qualified Domain Name): 호스트 + 도메인 주소 ex) www.google.com
구조
계층 구조로 되어있음
이름 해석 과정
레코드 종류
실습
nslookup [domain]
ipconfig /displaydns # DNS 캐시 확인
ipconfig /flushdns # DNS 캐시 초기화
패킷이 총 6개 캡쳐됨 (쿼리해서 게이트웨이 응답, A 레코드 쿼리/응답, AAAA 레코드 쿼리/응답)
그 중 아래 사진은 A레코드 쿼리/응답 패킷
URI | URL | URN
URI: Uniform Resource Identifier, 통합 자원 식별자
인터넷 자원을 식별할 수 있는 문자열
URL(Location): 자원이 있는 장소에 대한 경로
URN(Name): 특정 자원에 대한 그 이름 자체
*경로가 변경되었을 때 URL은 변경된 주소에서 리소스를 찾지 못함. URN 은 경로가 변경되어도 리소스 위치를 찾을 수 있음
URI 주소 구조
위에가 URL. 아래가 URN
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
scheme: 프로토콜 ex) http, ftp
authority = [userinfo "@"] host [":"port]
- userinfo =username : (password)
(없을 수도 있음)
- host: IP 주소, 도메인 주소
- port: 프로토콜에 의해 포트 번호가 보통 정해짐. (따로 지정했으면 그거 쓰면 됨)
path: /
로 시작
query: ?
로 시작해서 #
으로 끝나거나 없을 수도 있음. key=value 형식
fragment: #
으로 시작되고 URI 의 마지막. 서버에 보내지지 않는 요청
절대 URI : 모든 전체 경로 표현
상대 URI : 기준 URI 로부터 경로 표현
기준 URI: 상대 URI만 보면 URI의 기준이 어디인지 알 수없음.
보통 HTML의 Head 요소 안에<base href="https://www.naver.com">
요소에 표시
웹 프로세스 구조
HTTP 서비스 과정
서버와 클라이언트 간에 하이퍼텍스트 문서를 송수신하는 프로토콜
HTML 문서 전달 프로토콜
*HTTP 1.0 에서는 문서에 이미지가 있으면 연결 설정을 각각 따로 했어야 했는데, 1.1 부터 다시 연결을 설정하지 않고 소켓을 통해 데이터를 전송 받음
클라이언트 -> 서버 요청 방식
*HEAD 는 응답 메세지의 본문을 반환하지 않는 GET 과 같음
HTTP response code
Status Code | 의미 | 상세 내용 |
---|---|---|
1XX | 정보 전송 | 단순 정보 제공 |
2XX | 요청 처리 성공 | 요청이 성공적으로 처리됨 |
3XX | 리다이렉션 | 요청한 해당 자원이 다른 곳에 있음 |
4XX | 클라이언트 에러 | 요청(클라이언트)에 문제가 있음 |
5XX | 서버 에러 | 서버에 에러가 있음 |
HTTP response status code
Status Code | Phrase | 상세 내용 |
---|---|---|
200 | OK | 클라이언트 요청 성공 |
201 | Created | 클라이언트 PUT 요청 성공 |
301 | Move Permanently | 브라우저 요청을 다른 URL 로 전달 |
302 | Found | 일시적인 페이지 이동 |
304 | Not Modified | 로컬 캐쉬 정보 이용 |
400 | Bad Request | 클라이언트가 서버에게 잘못된 HTTP 요청 |
401 | Unauthorized | 인증 실패 |
403 | Forbidden | 클라이언트의 접근 차단 |
404 | Not Found | 요청한 자료가 존재하지 않음 |
500 | Internal Server Error | 서버가 클라이언트의 요청을 실행할 수 없음 |
503 | Service Unavailable | 서버가 오버로드 되었거나 다운된 상태이기 때문에 사용할 수 없음 |
인터넷을 이용하여 내 컴퓨터에서 상대방의 컴퓨터를 원격으로 제어할 수 있도록 해주는 명령 라인 클라이언트/서버
암호화 안되어 있어서 유저 아이디, 패스워드 확인 가능함 -> 최근엔 암호화된 SSH 사용함
*TCP 포트: 23번
인터넷에서 파일을 전송하는 기본 프로토콜
클라이언트는 1023보다 큰 임의의 번호의 소스 포트를 사용함
*TCP 포트: 21번
SMTP (Simple Mail Transfer Protocol)
네트워크의 두 메일 서버 간에 이메일을 송수신하는데 사용
*TCP 포트: 25번
*사용자가 이메일을 메일 서버로 보낼 때 SMTP 사용 / 메일 서버에서 자신의 이메일 다운로드할 때 POP3, IMAP 사용
POP3 (Post Office Protocol3)
이메일을 수신하는 표준 프로토콜.
*TCP 포트: 110번
IMAP (Internet Mail Access Protocol)
이메일을 저장/복사 하는 프로토콜
*TCP 포트: 143번
*POP3 처럼 SMTP 에 의존하지만, POP3와 달리 IMAP은 컴퓨터에서 지운 메일이 서버에 남아았어 언제 어디서든 이메일을 다시 볼 수 있음
Simple Network Management Protocol
다른 네트워크 장치를 원격에서 관리할 수 있는 방법을 제공하는 인터넷 표준 프로토콜
사용
네트워크 카드/프로그램, 허브, 라우터 네트워크 장비에서 사용 가능
구성
(네트워크를 관리하는) 중앙 관리 시스템 + (네트워크 관리하는 데 사용하는) 개체 정보 MIB(Management Information Base)
중앙 관리 시스템은 네트워크를 관리하기 위해 하나 이상의 MIB를 모니터 가능
*UDP 포트: 161번