KR102207423B1 - Tcp 체크섬 계산 장치 및 방법 - Google Patents

Tcp 체크섬 계산 장치 및 방법 Download PDF

Info

Publication number
KR102207423B1
KR102207423B1 KR1020140091812A KR20140091812A KR102207423B1 KR 102207423 B1 KR102207423 B1 KR 102207423B1 KR 1020140091812 A KR1020140091812 A KR 1020140091812A KR 20140091812 A KR20140091812 A KR 20140091812A KR 102207423 B1 KR102207423 B1 KR 102207423B1
Authority
KR
South Korea
Prior art keywords
checksum
data
calculating
tcp
bits
Prior art date
Application number
KR1020140091812A
Other languages
English (en)
Other versions
KR20150040732A (ko
Inventor
김익순
김선자
김채규
박종현
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/508,094 priority Critical patent/US9490939B2/en
Publication of KR20150040732A publication Critical patent/KR20150040732A/ko
Application granted granted Critical
Publication of KR102207423B1 publication Critical patent/KR102207423B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • H04L1/0008Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length by supplementing frame payload, e.g. with padding bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

TCP 체크섬 계산 장치에 관한 것으로, 일 실시예에 따르면, TCP 체크섬 계산 장치는 전송할 컨텐츠를 미리 설정된 바이트(byte) 단위로 둘 이상의 데이터로 분할하고, 분할된 데이터 각각에 대하여 체크섬을 계산하여 TCP 세그먼트의 데이터 영역에 삽입되는 데이터에 대한 체크섬을 계산할 수 있다. 이를 통하여, TCP 기반 네트워크 망에서 정적 컨텐츠 전송시 체크섬 계산 과정을 개선하여 TCP 기반 네트워크의 트랙픽 대부분을 차지하는 정적 컨텐츠 전송 속도를 향상시킬 수 있다.

Description

TCP 체크섬 계산 장치 및 방법{APPARATUS AND METHOD FOR COMPUTING TCP CHECKSUM}
TCP(Transmission Control Protocol) 체크섬(Checksum) 계산 장치 및 방법에 관한 것으로, 보다 상세하게는 TCP 기반 통신망에서 정적 컨텐츠를 효율적으로 전송하기 위한 TCP 세그먼트의 체크섬 계산 과정을 전용 하드웨어 없이 개선하는 기술에 관한 것이다.
인터넷을 포함한 컴퓨터 네트워크는 그것을 제외하고는 상상할 수 없을 정도로 현대 정보 통신 사회에서 커다란 비중을 차지하고 있다. 최근에는 SNS, 주식 거래 시장, 웹 페이지 등의 자료의 양이 폭증하고 있으며 이를 처리하기 위하여 "빅데이터"라는 신조어가 등장하고 이와 더불어 대용량 데이터를 저장, 가공, 처리, 학습하기 위한 일련의 방법들이 연구되고 있다.
컴퓨터 네트워크 프로토콜 중 TCP/IP 프로토콜은 HTTP 웹 프로토콜, FTP 파일 전송 프로토콜, SMTP 메일 전송 프로토콜 등을 포함한 많은 프로토콜의 기반이 되고 있어서 TCP/IP 통신 프로토콜의 전송 과정을 개선하는 것은 매우 중요하다. 하지만, TCP/IP 통신 프로토콜을 통한 자료 전송은 많은 계산 과정을 포함한다. 먼저 이더넷(Ethernet) 전송을 위한 프레임 단위의 전송이 필요하고, IP 전송을 위해서 IP 패킷의 헤더와 전송 자료의 프래그멘테이션(fragmentation)이 필요하다. 또한, TCP 전송을 위해서 TCP 세그먼트를 위한 헤더와 전송 자료의 구성이 필요하다. 또한 TCP는 전송하려는 모든 TCP 세그먼트마다 TCP 헤더와 전송하려는 자료에 대하여 16 비트 단위의 체크섬 계산을 수행하여야 하는데 이는 CPU에 커다란 부담이 되며 전송 속도에 영향을 미칠 수 있다.
TCP/IP 전송 과정을 전담 수행하는 전용 하드웨어를 개발하여 TCP/IP 전송과정의 CPU 부담을 줄이려는 TOE(TCP Offload Engine)이 개발되어 사용되고 있다. 이러한 TOE는 TCP/IP 프로토콜 스택 전부를 지원하거나, 이 중 일부의 기능을 전용 하드웨어를 통하여 수행한다. 네트워크 드라이버는 전송하려는 자료를 NIC(Network Interface Card)에 DMA (Direct Memory Access) 기능을 이용하여 전송하고, NIC는 전송 받은 자료를 전용 하드웨어를 사용하여 TCP/IP 세그먼트/패킷을 구성하여 전달한다. 다른 컴퓨터로부터 자료를 수신하는 과정도 이와 비슷하다.
하지만, 이러한 하드웨어 기반의 TOE가 항상 채택되는 것은 아니다. 그 이유는 TOE 기능이 장착된 NIC는 가격이 고가라는 단점이 있으며, 리눅스(Linux) 커널은 TOE 하드웨어를 지원하지 않기 때문이다. 또한, TOE 하드웨어는 보안상의 약점이 있고, TOE 칩(Chip)의 처리 능력 제약으로 인하여 자료의 버퍼링이 더욱 심해지는 문제가 있다. 또한, TOE가 리눅스 커널의 많은 변화를 야기하며, TOE 하드웨어가 표준화되어 있지 않고, 시스템 하드웨어의 빠른 성능 개선에 따른 TOE NIC의 짧은 수명 문제가 있기 때문이다. 한국공개특허 제10-2003-0091882호는 체크섬 생성장치 및 생성방법에 대해 개시하고 있다.
정적 컨텐츠를 전송하는 TCP/IP 전송 과정에서 발생하는 CPU의 부담을 줄이기 위하여, TCP 세그멘테이션 과정에서 발생하는 TCP 체크섬 계산 과정을 별도의 TOE 전용 하드웨어 없이 간소화하는 체크섬 계산 장치 및 방법이 제시된다.
TCP(Transmission Control Protocol) 세그먼트의 체크섬(checksum) 계산 장치에 있어서, 그 체크섬 계산 장치는 전송할 컨텐츠를 미리 설정된 바이트(byte) 단위로 둘 이상의 제1 데이터로 분할하는 데이터 분할부, 제1 데이터 각각에 대하여 제1 체크섬을 계산하는 제1 체크섬 계산부 및 제1 체크섬을 이용하여 TCP 세그먼트의 데이터 영역에 삽입되는 제2 데이터에 대한 제2 체크섬을 계산하는 제2 체크섬 계산부를 포함할 수 있다.
이때, 미리 설정된 바이트 단위는 전송할 컨텐츠의 전체 바이트보다 작으며 짝수일 수 있다.
제1 체크섬 계산부는 제1 데이터 각각에 대하여 16 비트 단위의 1의 보수 가산(1's complement addition)을 수행할 수 있다.
제1 체크섬 계산부는 1 번째부터 i(i≥1) 번째까지의 제1 데이터에 대한 보수 가산 결과를 1의 보수 가산하여 i 번째 제1 데이터에 대한 제1 체크섬을 계산할 수 있다.
제1 체크섬 계산부는 제1 데이터가 16 비트로 정렬(align)되어 있지 않으면, 0을 패딩(padding)하고, 패딩 결과를 이용하여 보수 가산을 수행할 수 있다.
체크섬 계산 장치는 제1 데이터 각각에 대하여 제1 체크섬이 계산되면, 그 제1 체크섬 각각을 대응되는 제1 데이터의 뒤에 삽입하는 제1 체크섬 관리부를 더 포함할 수 있다.
제2 체크섬 계산부는 제2 데이터가 j(j≥1) 번째부터 k(k≥j) 번째까지의 제1 데이터인 경우, k 번째 제1 데이터의 제1 체크섬에서 j 번째 제1 데이터의 제1 체크섬을 16 비트 단위의 1의 보수 감산(1's complement substraction)하여 제2 체크섬을 계산할 수 있다.
일 양상에 따르면, TCP(Transmission Control Protocol) 세그먼트의 체크섬(checksum) 계산 방법에 있어서, 체크섬 계산 방법은 전송할 컨텐츠를 미리 설정된 바이트(byte) 단위로 둘 이상의 제1 데이터로 분할하는 단계, 제1 데이터 각각에 대하여 제1 체크섬을 계산하는 단계 및 제1 체크섬을 이용하여 TCP 세그먼트의 데이터 영역에 삽입되는 제2 데이터에 대한 제2 체크섬을 계산하는 단계를 포함할 수 있다.
미리 설정된 바이트 단위는 전송할 컨텐츠의 전체 바이트보다 작으며 짝수일 수 있다.
제1 체크섬을 계산하는 단계는 제1 데이터 각각에 대하여 16 비트 단위의 1의 보수 가산(1's complement addition)을 수행하는 단계를 포함할 수 있다.
제1 체크섬을 계산하는 단계는 1 번째 제1 데이터부터 i(i≥1) 번째 제1 데이터까지의 보수 가산 결과를 1의 보수 가산하여 i 번째 제1 데이터에 대한 제1 체크섬을 계산하는 단계를 더 포함할 수 있다.
제1 체크섬을 계산하는 단계는 분할된 제1 데이터가 16 비트로 정렬(align)되어 있지 않으면, 0을 패딩(padding)하여 16 비트로 정렬하는 단계를 더 포함할 수 있다.
또한, 체크섬 계산 방법은 제1 데이터 각각에 대하여 제1 체크섬이 계산되면, 그 제1 체크섬 각각을 대응되는 제1 데이터의 뒤에 삽입하는 단계를 더 포함할 수 있다.
제2 체크섬을 계산하는 단계는 제2 데이터가 j(j≥1) 번째부터 k(k≥j) 번째까지의 제1 데이터인 경우, k 번째 제1 데이터에 대한 제1 체크섬에서 j 번째 제1 데이터에 대한 제1 체크섬을 16 비트 단위의 1의 보수 감산(1's complement substraction)하여 제2 체크섬을 계산할 수 있다.
HTTP 웹 프로토콜, FTP 파일 전송 프로토콜, SMTP 메일 전송 프로토콜 등의 TCP 기반 네트워크 망에서 정적 컨텐츠 전송시 체크섬 계산 과정을 개선하여 TCP 기반 네트워크의 트랙픽 대부분을 차지하는 정적 컨텐츠 전송 속도를 향상시킬 수 있다.
또한, 별도의 TOE 전용 하드웨어 없이 TCP 전송 과정에서 발생하는 체크섬 계산 과정을 개선하여 CPU 연산을 줄임으로써 CPU의 부담을 비약적으로 줄일 수 있다.
도 1은 일반적인 의사(Pseudo) IP 헤더의 예이다.
도 2는 일반적인 TCP 세그먼트 포맷의 예이다.
도 3은 일 실시예에 따른 TCP 체크섬 계산 장치의 블록도이다.
도 4 및 도 5는 일 실시예에 따라 TCP 체크섬 계산 장치가 체크섬을 계산하는 과정을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 TCP 체크섬 계산 방법의 흐름도이다.
도 7은 도 6의 TCP 체크섬 계산 방법 중 제1 체크섬을 계산하는 단계의 상세 흐름도이다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. 기재된 기술의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, TCP 체크섬 계산 장치 및 방법의 실시예들을 도면들을 참고하여 자세히 설명하도록 한다.
도 1은 일반적인 의사(pseudo) IP 헤더의 예이다. 도 2는 일반적인 TCP 세그먼트 포맷의 예이다.
도 1 및 도 2를 참조하여, 송신자 측에서 TCP 세그먼트의 체크섬을 계산하는 일반적인 과정을 설명한다.
먼저, TCP 세그먼트에 도 1에 도시된 의사 IP 헤더를 추가한다.
그 다음, 체크섬 필드(21)를 0으로 채운다.
그 다음, 체크섬 계산을 할 데이터의 전체 바이트 수가 짝수가 아니면 전부 0인 패딩을 한 바이트 추가한다. 이때, 패딩은 체크섬 계산을 위해서만 사용되고 체크섬 계산이 완료되면 폐기한다.
그 다음, 16-비트 단위의 1의 보수 가산(1's complement addition)을 사용하여 TCP 세그먼트를 전부 더하여 체크섬을 계산한다. 이때, TCP 세그먼트는 크게 의사 IP 헤더 영역, TCP 헤더 및 옵션 영역 및 데이터 영역(22)으로 이루어질 수 있다.
그 다음, 0을 1로 1을 0으로 바꾸는 방법으로 TCP 세그먼트를 전부 더한 결과의 보수를 구하여, 최종적으로 그 결과값을 체크섬 필드(21)에 삽입한다.
이후, 의사 IP 헤더와 추가된 패딩을 제거하고, 캡슐화를 위하여 TCP 세그먼트를 IP 모듈에 전달한다.
일 실시예에 따르면, TCP 체크섬 계산 장치 및 방법은 서버 컴퓨터가 정적 컨텐츠를 TCP 프로토콜을 이용하여 전송하려고 할 때 TCP 세그먼트 과정에서 발생하는 TCP 체크섬 계산 과정을 별도의 전용 하드웨어 없이 개선하는 기술과 관련된다. 특히, 위의 TCP 세그먼트의 체크섬 계산 과정 중에서 "16-비트 단위의 1의 보수 가산(1's complement addition)을 사용하여 TCP 세그먼트를 전부 더하여 체크섬을 계산하는 과정'을 개선할 수 있다. 좀 더 구체적으로, TCP 체크섬을 계산하는 과정 중에서 데이터 영역에 대한 체크섬을 계산하는 과정을 획기적으로 개선하여 송신측 컴퓨터의 TCP 성능 향상을 가져올 수 있다.
도 1 및 도 2에는 도시되지 아니하였으나, 본 발명에 따른 TCP 체크섬 계산 장치 및 방법은 UDP(User Datagram Protocol)의 체크섬을 계산하는 경우에도 동일하게 적용될 수 있다.
도 3은 일 실시예에 따른 TCP 체크섬 계산 장치의 블록도이다. 도 4 및 도 5는 일 실시예에 따라 TCP 체크섬 계산 장치가 체크섬을 계산하는 과정을 설명하기 위한 도면이다.
도 3을 참조하면, 일 실시예에 따른 TCP 체크섬 계산 장치(100)는 데이터 분할부(110), 제1 체크섬 계산부(120), 제2 체크섬 계산부(130) 및 제1 체크섬 관리부(140)를 포함할 수 있다.
데이터 분할부(110)는 전송하고자 하는 정적 컨텐츠를 미리 설정된 바이트 단위로 둘 이상의 제1 데이터로 분할할 수 있다. 이때, 미리 설정된 바이트는 전송할 컨텐츠의 전체 바이트보다 작은 짝수일 수 있다.
도 4는 전송할 정적 컨텐츠(30)를 4개의 제1 데이터(P1,P2,P3,P4)로 분할한 것을 예시한 것으로, 정적 컨텐츠의 전체 바이트 크기 및 미리 설정된 바이트 단위에 따라 분할되는 제1 데이터의 수가 결정될 수 있다.
제1 체크섬 계산부(120)는 분할된 제1 데이터(P1,P2,P3,P4) 각각에 대하여 제1 체크섬을 계산한다.
예를 들어, 제1 체크섬 계산부(120)는 아래의 수학식 1에 의하여 각 제1 데이터(P1,P2,P3,P4)에 대하여 제1 체크섬을 계산할 수 있다.
Figure 112014068203244-pat00001
여기서, i≥1을 만족하며, 연산
Figure 112014068203244-pat00002
는 16-비트 단위의 1의 보수 가산을 의미한다. 또한, PC(Pi)는 i 번째 제1 데이터에 대한 제1 체크섬을 의미하고, S(Pi)는 i 번째 제1 데이터에 대한 16-비트 단위의 1의 보수 가산을 수행한 결과를 나타낸다.
도 4를 예로 들어 설명하면, 제1 체크섬 계산부(120)는 분할된 제1 데이터(P1,P2,P3,P4) 각각에 대하여, 16 비트 단위의 1의 보수 가산을 수행하여 각각 S(P1),S(P2),S(P3) 및 S(P4)를 계산할 수 있다.
이후, 계산된 S(P1),S(P2),S(P3) 및 S(P4)를 수학식 1에 적용하여 제1 데이터(P1,P2,P3,P4) 각각에 대한 제1 체크섬을 아래의 수학식 2와 같이 계산할 수 있다.
Figure 112014068203244-pat00003
한편, 제1 체크섬 계산부(120)는 분할된 제1 데이터가 16 비트로 정렬(align)되어 있지 않으면, 0을 패딩하여 16 비트로 정렬하고, 그 패딩 결과를 이용하여 보수 가산을 수행할 수 있다.
제2 체크섬 계산부(130)는 분할된 제1 데이터 각각에 대하여 제1 체크섬이 계산되면, 계산된 각 제1 체크섬을 이용하여 도 3의 TCP 세그먼트의 데이터 영역(22)에 삽입되어 전송될 제2 데이터에 대한 제2 체크섬을 계산할 수 있다.
예를 들어, TCP 세그먼트의 데이터 영역(22)에 삽입되는 제2 데이터가 분할된 제1 데이터 중에서 j(j≥1) 번째부터 k(k≥j) 번째까지의 제1 데이터인 경우, k 번째 제1 데이터(Pk)의 제1 체크섬(PC(Pk))에서 j 번째 제1 데이터(Pj)의 제1 체크섬(PC(Pj))을 아래의 수학식 3과 같이 16 비트 단위의 1의 보수 감산(1's complement substraction)하여 제2 체크섬(TPC(Pkj))을 계산할 수 있다.
Figure 112014068203244-pat00004
여기서, 연산
Figure 112014068203244-pat00005
은 16 비트 단위의 1의 보수 감산을 의미한다.
즉, TCP 세그먼트 데이터 영역에 제1 데이터 Pj 부터 Pk 까지의 제2 데이터를 넣으려고 하는 경우, 이 데이터 영역에 대한 제2 체크섬 값은 S(Pj)
Figure 112014068203244-pat00006
Figure 112014068203244-pat00007
S(Pk)이고, 제2 체크섬 값을 미리 계산된 제1 체크섬을 이용하여 PC(Pk)
Figure 112014068203244-pat00008
PC(Pj)을 이용하여 간단하게 계산할 수 있다.
도 4를 예로 들어 설명하면, 제2 데이터가 2번째 제1 데이터(P2)와 3번째 제1 데이터(P3)라고 할 때, 제2 체크섬 TPC(P32)는 PC(P3)
Figure 112014068203244-pat00009
PC(P2)가 된다.
한편, 제1 체크섬 관리부(140)는 제1 체크섬 계산부(120)에 의해 계산된 제1 데이터 각각에 대한 제1 체크섬을 관리한다.
일 예에 따르면, 제1 체크섬 관리부(140)는 제1 데이터 각각에 대해 산출된 제1 체크섬을 대응되는 제1 데이터의 뒤에 2 바이트로 삽입하여 관리할 수 있다. 이 때, 제1 체크섬 관리부(140)는 제1 체크섬을 제1 데이터 파일과 동일한 파일에 저장할 수 있다. 다른 예에 따르면, 제1 체크섬 관리부(140)는 산출된 제1 체크섬을 모아서 별도의 파일에 저장하여 관리할 수도 있다.
도 5는 원본 정적 컨텐츠에 제1 체크섬을 삽입하여 관리하는 것을 예시한 것으로, 제1 체크섬 관리부(140)는 전송할 정적 컨텐츠가 4개의 제1 데이터(P1,P2,P3,P4)로 분할되면, 분할된 제1 데이터(P1,P2,P3,P4)의 뒤에 각각 2 바이트의 제1 체크섬 관리 영역(31,32,33,34)을 할당하고, 제1 데이터(P1,P2,P3,P4) 각각에 대한 제1 체크섬(PC(P1), PC(P2), PC(P3), PC(P4))이 계산되면, 제1 체크섬 각각을 대응되는 제1 체크섬 관리 영역(31,32,33,34)에 삽입하여 관리할 수 있다.
하지만, 산출된 제1 체크섬의 관리 방법에 있어서 위에 설명한 바에 제한되는 것은 아니며 수행 시스템의 성능이나 환경에 의해 다양한 방법에 의해 관리될 수 있다.
도 6은 일 실시예에 따른 TCP 체크섬 계산 방법의 흐름도이다. 도 7은 도 6의 TCP 체크섬 계산 방법 중 제1 체크섬을 계산하는 단계의 상세 흐름도이다.
도 6 및 도 7은 도 3의 실시예에 따른 체크섬 관리 장치(100)에 의해 수행되는 체크섬 계산 방법의 일 실시예일 수 있다.
도 6을 참조하면, 체크섬 관리 장치(100)는 전송하고자 하는 정적 컨텐츠를 미리 설정된 바이트 단위로 둘 이상의 제1 데이터로 분할할 수 있다(단계 310). 이때, 미리 설정된 바이트는 전송할 컨텐츠의 전체 바이트보다 작은 짝수일 수 있다.
그 다음, 분할된 복수의 제1 데이터 각각에 대하여 제1 체크섬을 계산할 수 있다(단계 320). 이때, 수학식 1에 의해 제1 데이터 각각에 대한 제1 체크섬을 계산할 수 있다.
도 7을 참조하여 좀 더 구체적으로 설명하면, 먼저, i번째의 제1 데이터(Pi)를 입력받는다(단계 321), 이때, 최초에는 i는 1이 된다.
그 다음, 입력된 제1 데이터 Pi가 16 비트로 정렬되어 있는지 판단한다(단계 322).
그 다음, 판단 결과(단계 322), 입력된 제1 데이터 Pi가 16 비트로 정렬되어 있지 않으면, 제1 데이터 Pi에 0을 패딩하고(단계 323), 판단 결과 입력된 제1 데이터가 16 비트로 정렬되어 있으면 바로 제1 데이터 Pi 에 대하여 16 비트 단위의 1의 보수 가산을 수행하여 결과 S(Pi)를 출력할 수 있다(단계 324).
그 다음, 현재의 Pi가 마지막 제1 데이터인지를 판단하여(단계 325), 마지막 제1 데이터가 아니면 i를 1 증가시켜 다음 제1 데이터를 입력받는 단계 321 이하를 다시 수행한다
판단 결과(단계 325), 마지막 데이터이면 다시, 제1 데이터(Pi)를 입력으로(단계 326), 입력된 제1 데이터(Pi)에 대하여 단계 324에서 산출된 S(P1) 내지 S(Pi)를 다시 수학식 1에 따라 1의 보수 가산하여 i 번째 제1 데이터(Pi)에 대한 제1 체크섬(PC(Pi))을 계산할 수 있다(단계 327). 이때, 최초에는 i는 1이 되며 순차적으로 증가한다.
그 다음, 현재의 제1 데이터가 마지막 제1 데이터인지를 판단하여(단계 328), 마지막이 아니면 다시 단계 326으로 이동하여 다음 제1 데이터에 대한 제1 체크섬을 계산하는 과정을 반복 수행한다.
한편, 도시되지는 않았지만, 단계 320에서 제1 데이터 각각에 대하여 제1 체크섬이 계산되면, 제1 체크섬을 관리하는 단계를 더 포함할 수 있다.
이때, 체크섬 관리 장치(100)는 제1 데이터 각각에 대해 산출된 제1 체크섬을 대응되는 도 5에 예시된 바와 같이 제1 데이터의 뒤에 2 바이트로 삽입하여 동일한 데이터 파일 내에서 관리하거나, 산출된 제1 체크섬을 모아서 별도의 파일에 저장하여 관리할 수도 있다.
다시 도 6을 참조하면, 단계 320에서 분할된 제1 데이터 각각에 대하여 제1 체크섬이 계산되면, 계산된 각 제1 체크섬을 이용하여 TCP 세그먼트의 데이터 영역에 삽입되어 전송될 제2 데이터에 대한 제2 체크섬을 계산할 수 있다(단계 330).
예를 들어, TCP 세그먼트의 데이터 영역에 삽입되는 제2 데이터가 분할된 제1 데이터 중에서 j(j≥1) 번째부터 k(k≥j) 번째까지의 제1 데이터인 경우, k 번째 제1 데이터(Pk)의 제1 체크섬(PC(Pk))에서 j 번째 제1 데이터(Pj)의 제1 체크섬(PC(Pj))을 위의 수학식 3에 따라 16 비트 단위의 1의 보수 감산(1's complement substraction)하여 제2 체크섬(TPC(Pkj))을 계산할 수 있다.
개시된 실시예에 따르면, IPv4의 실시예를 위주로 설명하였으나, IPv6의 경우에도 쉽게 변형 적용이 가능하다. 이와 같이 개시된 실시예에 따르면, TCP전송 과정에서 발생하는 TCP 체크섬 계산 과정을 개선하여 CPU의 부담을 크게 줄일 수 있다.
본 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 체크섬 계산 장치 110: 데이터 분할부
120: 제1 체크섬 계산부 130: 제2 체크섬 계산부
140: 제1 체크섬 관리부

Claims (14)

  1. TCP(Transmission Control Protocol) 세그먼트의 체크섬(checksum) 계산 장치에 있어서,
    전송할 컨텐츠를 미리 설정된 바이트(byte) 단위로 둘 이상의 제1 데이터로 분할하는 데이터 분할부;
    상기 제1 데이터 각각에 대하여 제1 체크섬을 계산하는 제1 체크섬 계산부; 및
    제1 체크섬을 계산한 후에, 상기 제1 데이터 각각에 대한 제1 체크섬을 이용하여 상기 TCP 세그먼트의 데이터 영역에 삽입되는 제2 데이터에 대한 제2 체크섬을 계산하는 제2 체크섬 계산부를 포함하는 체크섬 계산 장치.
  2. 제1항에 있어서,
    상기 미리 설정된 바이트 단위는
    상기 전송할 컨텐츠의 전체 바이트보다 작으며 짝수인 체크섬 계산 장치.
  3. 제1항에 있어서,
    상기 제1 체크섬 계산부는
    상기 제1 데이터 각각에 대하여 16 비트 단위의 1의 보수 가산(1's complement addition)을 수행하는 체크섬 계산 장치.
  4. 제3항에 있어서,
    상기 제1 체크섬 계산부는
    1 번째부터 i(i≥1) 번째까지의 제1 데이터에 대한 보수 가산 결과를 1의 보수 가산하여 i 번째 제1 데이터에 대한 제1 체크섬을 계산하는 체크섬 계산 장치.
  5. 제3항에 있어서,
    상기 제1 체크섬 계산부는
    상기 제1 데이터가 16 비트로 정렬(align)되어 있지 않으면, 0을 패딩(padding)하고, 패딩 결과를 이용하여 보수 가산을 수행하는 체크섬 계산 장치.
  6. 제1항에 있어서,
    상기 제1 데이터 각각에 대하여 제1 체크섬이 계산되면, 그 제1 체크섬 각각을 대응되는 제1 데이터의 뒤에 삽입하는 제1 체크섬 관리부를 더 포함하는 체크섬 계산 장치.
  7. 제1항에 있어서,
    상기 제2 체크섬 계산부는
    상기 제2 데이터가 j(j≥1) 번째부터 k(k≥j) 번째까지의 제1 데이터인 경우, k 번째 제1 데이터의 제1 체크섬에서 j 번째 제1 데이터의 제1 체크섬을 16 비트 단위의 1의 보수 감산(1's complement substraction)하여 상기 제2 체크섬을 계산하는 체크섬 계산 장치.
  8. TCP(Transmission Control Protocol) 세그먼트의 체크섬(checksum) 계산 방법에 있어서,
    전송할 컨텐츠를 미리 설정된 바이트(byte) 단위로 둘 이상의 제1 데이터로 분할하는 단계;
    상기 제1 데이터 각각에 대하여 제1 체크섬을 계산하는 단계; 및
    제1 체크섬을 계산한 후에, 상기 제1 데이터 각각에 대한 제1 체크섬을 이용하여 상기 TCP 세그먼트의 데이터 영역에 삽입되는 제2 데이터에 대한 제2 체크섬을 계산하는 단계를 포함하는 체크섬 계산 방법.
  9. 제8항에 있어서,
    상기 미리 설정된 바이트 단위는
    상기 전송할 컨텐츠의 전체 바이트보다 작으며 짝수인 체크섬 계산 방법.
  10. 제8항에 있어서,
    상기 제1 체크섬을 계산하는 단계는
    상기 제1 데이터 각각에 대하여 16 비트 단위의 1의 보수 가산(1's complement addition)을 수행하는 단계를 포함하는 체크섬 계산 방법.
  11. 제10항에 있어서,
    상기 제1 체크섬을 계산하는 단계는
    1 번째부터 i(i≥1) 번째까지의 제1 데이터에 대한 보수 가산 결과를 1의 보수 가산하여 i 번째 제1 데이터에 대한 제1 체크섬을 계산하는 단계를 더 포함하는 체크섬 계산 방법.
  12. 제10항에 있어서,
    상기 제1 체크섬을 계산하는 단계는
    상기 분할된 제1 데이터가 16 비트로 정렬(align)되어 있지 않으면, 0을 패딩(padding)하여 16 비트로 정렬하는 단계를 더 포함하는 체크섬 계산 방법.
  13. 제8항에 있어서,
    상기 제1 데이터 각각에 대하여 제1 체크섬이 계산되면, 그 제1 체크섬 각각을 대응되는 제1 데이터의 뒤에 삽입하는 단계를 더 포함하는 체크섬 계산 방법.
  14. 제8항에 있어서,
    상기 제2 체크섬을 계산하는 단계는
    상기 제2 데이터가 j(j≥1) 번째부터 k(k≥j) 번째까지의 제1 데이터인 경우, k 번째 제1 데이터의 제1 체크섬에서 j 번째 제1 데이터의 제1 체크섬을 16 비트 단위의 1의 보수 감산(1's complement substraction)하여 상기 제2 체크섬을 계산하는 체크섬 계산 방법.
KR1020140091812A 2013-10-07 2014-07-21 Tcp 체크섬 계산 장치 및 방법 KR102207423B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/508,094 US9490939B2 (en) 2013-10-07 2014-10-07 Apparatus and method for calculating transmission control protocol checksum

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130119259 2013-10-07
KR1020130119259 2013-10-07

Publications (2)

Publication Number Publication Date
KR20150040732A KR20150040732A (ko) 2015-04-15
KR102207423B1 true KR102207423B1 (ko) 2021-01-27

Family

ID=53032001

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140091812A KR102207423B1 (ko) 2013-10-07 2014-07-21 Tcp 체크섬 계산 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102207423B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100492490B1 (ko) * 2002-10-31 2005-06-02 크로스반도체기술 주식회사 IPv4/IPv6 변환에 있어서 TCP 세그먼트/UDP 데이터그램의체크섬 계산 장치 및 방법
KR100666997B1 (ko) * 2006-01-26 2007-01-10 삼성전자주식회사 고속 체크섬 처리 장치 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2010204724B2 (en) * 2009-01-14 2015-05-07 Entropic Communications Inc. System and method for retransmission and fragmentation in a communication network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100492490B1 (ko) * 2002-10-31 2005-06-02 크로스반도체기술 주식회사 IPv4/IPv6 변환에 있어서 TCP 세그먼트/UDP 데이터그램의체크섬 계산 장치 및 방법
KR100666997B1 (ko) * 2006-01-26 2007-01-10 삼성전자주식회사 고속 체크섬 처리 장치 및 방법

Also Published As

Publication number Publication date
KR20150040732A (ko) 2015-04-15

Similar Documents

Publication Publication Date Title
US10587544B2 (en) Message processing method, processing server, terminal, and storage medium
CN104580192B (zh) 应用程序的网络访问请求的处理方法和装置
US10735373B2 (en) Communications over multiple protocol interfaces in a computing environment
US20170054640A1 (en) Device and method for establishing connection in load-balancing system
CN113326228A (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US9490939B2 (en) Apparatus and method for calculating transmission control protocol checksum
CN106921578A (zh) 一种转发表项的生成方法和装置
US9137199B2 (en) Stateful NAT64 function in a distributed architecture
US9525661B2 (en) Efficient method of NAT without reassemling IPV4 fragments
US11064021B2 (en) Method, device and computer program product for managing network system
CN103746768B (zh) 一种数据包的识别方法及设备
US10339091B2 (en) Packet data processing method, apparatus, and system
KR102207423B1 (ko) Tcp 체크섬 계산 장치 및 방법
CN116846669A (zh) 网络流量处理方法、装置、计算机设备、存储介质及产品
WO2022227484A1 (zh) 数据通信方法、装置、计算机设备和存储介质
CN110958216A (zh) 安全的在线网络分组传输
CN106487855B (zh) 文件上传方法、访问方法、装置及设备
CN108063713A (zh) 一种网络请求的处理方法及装置
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
KR100666997B1 (ko) 고속 체크섬 처리 장치 및 방법
US20240179178A1 (en) Control method and apparatus, computing device, and computer-readable storage medium
EP2946526B1 (en) Web content communication
CN117793016A (zh) 一种数据报传输方法和装置、电子设备及存储介质
CN106230924A (zh) 报文的压缩方法和装置
Czekaj Hardware Acceleration of Traffic Classifiers for High Throughput Ethernet

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant