응용 계층 프로토콜
POP3와 IMAP의 차이점 : 서버로부터 메일을 가져올때 차이 발생.
POP3는 메일을 다운로드하면서 메일을 서버에서 삭제 했었음 (옵션으로 서버에서 삭제하지 않기가 있음)
IMAP은 메일을 서버에 두고 읽어 오는 형태
TCP : Transfer Control Protocol
UDP : User Datagram Protocol
TCP와 UDP의 공통점
신뢰성 : 전송 후 잘 받았는지 확인
비신뢰성 : 전송 후 잘 받았는지 확인하지 않음
응용 프로토콜 중 TCP 통신을 하는 프로토콜은 응용프로토콜이 가동되기 전에 TCP를 이용해 session을 연결 후에 전송하기 시작 전송이 끝나면 연결을 끊는 finish 명령과 함께 종료 시킴
TCP는 세션을 만듬 -> 소켓 버퍼 -> 버퍼에서 분할과 재조립
Tx 버퍼, Rx 버퍼를 만듬
IP는 어떡하면 빨리 보낼까 생각만 하기때문에 패킷이 어떻게 들어올지 모름 그렇기 때문에 Rx 버퍼에서 순서대로 재조립 함.
보낼때는 순서를 붙여서 보내야하기 때문에 Tx버퍼에서 순서를 붙여줌.
TCP는 분할 재조립 시 순서에 따라 분할 재조립
UDP는 받는 순서대로 처리
TCP는 신뢰성이 있기 때문에 에러와 흐름 제어를 하지만 UDP는 하지 않음
TCP는 Stateful protocol
UDP는 Stateless protocol
TCP는 Overhead가 많이 발생 UDP는 Overhead가 적게 발생
TCP는 일반적인 문서가 중요한 프로토콜에 사용
UDP는 실시간 서비스 프로토콜에 사용
세션이 연결 된 상태란?
클라이언트와 서버간 통신 인증이 된 상태
이 상태에서 데이터 송수신이 가능함
세선 정보
한 세션 내에서 클라이언트가 서버에 전송할 데이터 정보를 의미
서버는 세션 유지 시간이 끝나거나 클라이언트가 전송하려했던 데이터를 모두 수신할 때까지 클라이언트와의 세션 상태를 유지
stateful(상태유지) : 세션이 종료될 때까지 클라이언트의 세션 정보를 저장하는 프로토콜
브라우저 : 쿠키
서버나 클라이언트 : 메모리(버퍼)
stateless(무상태) : 서버가 클라이언트의 세션 상태 및 정보를 저장하지 않는 네트워크 프로토콜
IP 통신이 정상적으로 되는지 체크 응용 프로그램
3계층을 이용해서 통신을 확인
Type Code : Type과 Code를 통해 특정 host, network가 정상적으로 통신이 되는지 확인할 때 주로 사용
멀티 캐스트 통신을 할 때 그룹 관리를 위해 사용되는 Protocol
IP 상위에 있는 프로토콜로 IP가 작동하지 않으면 ICMP와 IGMP는 작동하지 않음.
IP 주소와 L2주소(ethernet, Mac주소)를 Mapping 시키는 프로토콜로 IP 주소는 알지만 MAC 주소를 모르는 경우 해당 IP 주소의 MAC 주소가 무엇인지 알기 위해 ethernet에서는 자동으로 ARP가 작동해 MAC 주소를 알아오는 것 즉, IP 주소로 MAC 주소 변환
MAC 주소로 IP 주소로 변환 (IP 주소와 MAC 주소 DB 구축이 필요함)
ARP는 IP 주소로 MAC 주소 변환(찾는 것) IP 주소를 설정하면 설정된 IP 주소로 ARP를 보냄,
그러면 IP 충돌여부를 확인 할 수 있음
MAC 주소를 대행해주는 ARP를 Proxy ARP
IP : 인터넷에 연결이 된 장치들을 찾아갈 수 있도록 만든 프로토콜로 장치들을 구분하기 위한 ID로 IP 주소를 사용
Proxy : 특정 주소나 서비스를 대행하는 서비스
TCP / IP 1계층 네트워크 인터페이스 계층 (OSI 7계층 L2, L1)
TCP / IP 에서는 네트워크 인터페이스 계층 따로 지정하지 않았으며 현재는 ethernet으로 전부 통일이 되었다고 봐도 무방
ethernet은 무선 기술에까지 적용해서 사용하고 있음.
= 각 계층 별 주소가 사용되는 지점
L7 ⇒ Application Protocol로 구분하고 Application을 가동하면 port를 Listen 상태로 열어둠
L3 ⇒ Port 주소를 이용해 L7 Application 구분 (상위 계층은 하위 계층에게 어떤 프로토콜인지 알려줌,
하위 계층은 상위 계층에게 전달하기 위해 어떤 프로토콜인지 알아야함.) (서비스 대 서비스 전달)
프로세스 대 프로세스 전달을 담당
L3 ⇒ IP 주소 상위 프로토콜을 알려주는 field IP Protocol : 0~255 사이 번호 사용해서 구분 (참고 : ICMP 1 IGMP 2 TCP 6 UDP 17) IP 주소를 이용해 같은 네트워크인지 다른 네트워크인지를 판단하고 Routing Table을 확인해 어떤 인터페이스(출구) 로 나가는지를 지정해주게 됨
L2 ⇒ ethernet 기준으로 MAC 주소를 이용해 같은 네트워크의 통신을 담당하고 IP 주소와 MAC 주소는 Mapping이 되어 있어야 하고 Mapping이 된 Table을 ARP Table 이라고 함 이 테이블에 IP 주소와 MAC 주소가 Mapping 되어 있지 않으면 ARP로 MAC주소를 확인 후 전송
같은 네트워크를 통신하는 이유는 ARP가 Broadcast Frame으로 전송을 하기 때문에 라우터에 의해 브로드 캐스트가 분리되기 때문에 같은 네트워크 통신을 담당
서버나 PC의 IP 설정
IP 주소 : 해당 네트워크 유일한 주소를 사용해 host 구분
라우팅 테이블도 생성 (같은 네트워크에 대한 라우팅 테이블이 생성 됨)
SubnetMask : 같은 네트워크인지 다른 네트워크인지 판단
Gateway : 게이트웨이를 등록하면 0.0.0.0/0 (default route)가 생성이 되고 모든 IP 주소를 뜻하는 주소로 해당 게이트웨이로 가면 다른 네트워크로 갈 수 있도록 안내를 해주며 만약 해당 네트워크가 없다면 ICMP로 destination host unreachable이라는 Message를 보내고 packet은 출구가 없기 때문에 Drop 됨
1.0.0.0 ⇒ 네트워크 주소
1.255.255.255 ⇒ 해당 네트워크 브로드캐스트 주소
172.16.0.10 ⇒ 네트워크 주소는 172.16.0.0
172.16.255.255 ⇒ 해당 네트워크 브로드캐스트 주소