1. 네트워크 프로그래밍의 기본 개념

HTTP : 웹 서버와 브라우저 간의 프로토콜

DNS, DNS 서버

DNS(Domain Name System) : 호스트 이름을 짓는 표준 프로토콜.

DNS 서버 : www.naver.com과 같은 사용자를 위한 DNS이름을 209.218.30.6과 같은 대응되는 IP주소로 변환해준다.

모든 컴퓨터는 자기 자신을 가리키는 특별한 호스트 이름인 localhost와 IP주소인 127.0.0.1을 가진다.

SocketChannel socketChannel = SocketChannel.open(new InetSocketAddress("localhost", 13000))
//인터넷 클래스는 InetAddress가 담당

IP주소 : 네트워크에 존재하는 컴퓨터를 유일하게 식별하는 숫자

URL(Uniform Resource Locator) : 인터넷에 있는 자원의 위치를 나타내기 위한 규약

<http://www.naver.com/index.html:80>

프로토콜 : // 호스트 이름 / 파일 이름 : 포트 번호

2. TCP, UDP, 포트, 소켓

클라이언트와 서버 사이의 통신은 신뢰성이 있어야 한다.

신뢰성이 있다는 것은 데이터의 누락이 없어야 하고 서버에서 보낸 순서대로 클라이언트 측에 도착하여야 한다는 것이다.

이에 필요한 개념들을 정리했다.

프로토콜

통신을 원하는 두 개체 간에 무엇을, 어떻게, 언제 통신할 것인가를 서로 약속한 규약

프로토콜을 계층적으로 정의하여 프로토콜의 각 부분들을 독립적으로 설계하고 테스트할 수 있다.

응용프로그램 계층

FTP, TELNET, HTTP, SMTP

트랜스포트 계층

TCP, UDP

네트워크 계층

IP

데이터 링크 계층

PPP(point-to-point protocol)이 오류 감지

물리적 계층

WiFi

TCP/IP 5계층

TCP/IP 5계층

TCP(Transmission Control Protocol)