네트워크 계층의 기능
서비스의 종류
- 연결형: 데이터 전송 전에 데이터의 전송 경로를 미리 결정. 주소가 필요 없다.
- 비연결형: 데이터의 전송 경로를 사전에 결정하지 않고 패킷 단위로 결정. IP 주소를 가지고 스스로 움직이는.
3계층은 비연결형이다.
비연결형 서비스
- 패킷의 전달 순서가 일정하지 않음 -> 상위 계층에서 순서 조정
- 패킷 분실 가능성 -> 상위 계층에서 분실 오류 복구
- 인터넷 환경 예시: IP, UDP
연결형 서비스
- 상대적으로 신뢰성 높음
- 인터넷 환경 예시: TCP
IP 헤더
- version number: 버전 넘버 4인지 6인지
- header length: 헤더길이, 20바이트이면 단위가 4바이트이기 때문에 5가 들어감
- service type: 현재는 사용안함
- identification: 패킷 분할에서 식별을 위해 사용. 분할된 패킷은 동일한 번호를 부여한다.
- MF: 0일 경우 분할된 패킷의 마지막
- Fragment offset: 분할 전 데이터에서의 상대적인 위치 정보
- DF: 패킷 분할 금지. 쪼개졌을 경우 packet length의 길이와 실제 길이가 다르면 잘못된 경우.
- Time to Live: 살아남기 위한 시간. 포워딩 할 때마다 하나씩 줄임. 네트워크 상의 쓰레기 데이터를 제거하기 위함.
- Transport: 4계층의 정보. TCP 같은것의 식별자가 들어감. TCP는 6
- Header checksum: 체크용 해시값으로 무결성 확인.
- option: 처음 만들 때 미처 생각하지 못한 부분이 있을까봐 만들어놓은 공간. 옵션은 사용되지 않음.
- 맨 아래 packet length: 역시 사용되지 않음.
만약 패킷의 헤더 정보가 일반적인것과 다르면 잡아내야 한다!
TCP
- sequence number: 보내는 입장에서 순서
- acknowledgement number: 응답 번호
- data offset: 헤더 크기
- Reserved: 추후 사용할까봐 미리 예약해둔 자리
- SYN: 연결 설정 플래그
- FIN: 연결 종료 요청
- RST: 연결 리셋, 그냥 끊어버림, 비정상 세그먼트에 대한 응답
- PSH: 데이터를 위 계층올 푸시
- ACK: 승인. ack 플래그가 세팅되어야 ack number가 의미가 있다.
- URG: 급한 데이터는 먼저보내겠다. 지금은 쓰지 않는다.
- Urgent Pointer: 급한 내용의 데이터의 포인터. 마찬가지로 사용하지 않는다.
- window: 수신 윈도우 버퍼 크기. 남은 사이즈. 0이면 전송 정지.
- checksum: 헤더와 데이터에 대한 오류 검출. 무결성
3-way handshake
tcp 통신을 시작하기 위해 하는 3번의 프래그먼트 전송
'시큐리티 아카데미 > 시큐리티 아카데미 TIL' 카테고리의 다른 글
1일차 (0) | 2024.07.04 |
---|